Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL]Problem z sortowaniem w MySQL
northwest
post 29.09.2011, 12:32:36
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam serdecznie,
Mam takie zapytanie:
  1. SELECT * FROM cms_obiekty WHERE typobiektu = '1' AND STATUS <> '0' AND STATUS = '1' ORDER BY RAND(), special DESC, polecany DESC, panoramka DESC LIMIT 0,10


w polach: special , polecany i panoramka mam wartości 0 i 1.

chciałbym żeby wyniki były w ww polach od 1 do 0 i żeby był wymieszane między sobą (losowo wymieszane) - ale z zachowaniem sortowania...

Da się coś takiego zrobić?


Z góry dziki za pomoc,
Northwest
Go to the top of the page
+Quote Post
nospor
post 29.09.2011, 12:37:31
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Trochę nie na temat ale jak widzę takie rzeczy to nie mogę przejśc obojętnie:
STATUS <> '0' AND STATUS = '1'
jesli status będzie równe 1 to logiczne, że będzie różne od 0
i już:
STATUS = '1'


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pianta_d
post 29.09.2011, 12:52:18
Post #3





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


Ja jeszcze wrzuciłbym w nawiasy

  1. SELECT * FROM cms_obiekty WHERE (typobiektu = '1' AND STATUS <> '0' AND STATUS = '1') ORDER BY RAND(), special DESC, polecany DESC, panoramka DESC LIMIT 0,10


Pozdrawiam
Go to the top of the page
+Quote Post
northwest
post 29.09.2011, 14:20:54
Post #4





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


nie do końca działą sad.gif ignoruje te sortowania od 1 do 0... sad.gif
Go to the top of the page
+Quote Post
pianta_d
post 29.09.2011, 15:45:51
Post #5





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


Ale oprócz tego nie musisz wyszukiwać danych z pola STATUS ponieważ, z tego co rozumiem, przechowujesz tam tylko wartości z zakresu 0..1

  1. SELECT * FROM `cms_obiekty` WHERE `typobiektu` = '1' ORDER BY RAND(), `special` DESC, `polecany` DESC, `panoramka` DESC LIMIT 0,10



Poza tym zamiast DESC daj ASC - chcesz sortować od większej do mniejszej


Pozdrawiam
Go to the top of the page
+Quote Post
northwest
post 29.09.2011, 20:30:07
Post #6





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


kurcze,nie działa sad.gif ani z ASC, ani z DESC... ciągle 0 jest przed 1...
Go to the top of the page
+Quote Post
pianta_d
post 30.09.2011, 21:10:41
Post #7





Grupa: Zarejestrowani
Postów: 176
Pomógł: 18
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


daj strukturę bazy i dane - część przykładową





Go to the top of the page
+Quote Post
northwest
post 30.09.2011, 22:22:07
Post #8





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


mam taką bazę:
  1. CREATE TABLE IF NOT EXISTS `cms_obiekty` (
  2. `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `idusera` int(60) DEFAULT NULL,
  4. `typobiektu` smallint(2) DEFAULT NULL,
  5. `rodzajobiektu` smallint(2) DEFAULT NULL,
  6. `otwarty` char(1) collate utf8_unicode_ci DEFAULT NULL,
  7. `nazwa` varchar(200) collate utf8_unicode_ci NOT NULL,
  8. `kodpocztowy` varchar(10) collate utf8_unicode_ci DEFAULT NULL,
  9. `miasto` varchar(100) collate utf8_unicode_ci DEFAULT NULL,
  10. `ulica` varchar(90) collate utf8_unicode_ci DEFAULT NULL,
  11. `tel` varchar(25) collate utf8_unicode_ci DEFAULT NULL,
  12. `tel2` varchar(25) collate utf8_unicode_ci DEFAULT NULL,
  13. `fax` varchar(16) collate utf8_unicode_ci DEFAULT NULL,
  14. `email` varchar(60) collate utf8_unicode_ci DEFAULT NULL,
  15. `gg` varchar(11) collate utf8_unicode_ci DEFAULT NULL,
  16. `skype` varchar(60) collate utf8_unicode_ci DEFAULT NULL,
  17. `www` varchar(60) collate utf8_unicode_ci DEFAULT NULL,
  18. `cenaod` smallint(60) DEFAULT NULL,
  19. `cenado` smallint(60) DEFAULT NULL,
  20. `youtube` varchar(150) collate utf8_unicode_ci DEFAULT NULL,
  21. `opis` text collate utf8_unicode_ci,
  22. `za1osobe` varchar(1) collate utf8_unicode_ci DEFAULT NULL,
  23. `za1domek` varchar(1) collate utf8_unicode_ci DEFAULT NULL,
  24. `za1apartamentpokoj` char(1) collate utf8_unicode_ci DEFAULT NULL,
  25. `lazienka` char(1) collate utf8_unicode_ci DEFAULT NULL,
  26. `dostosowany_dla_niepelnosprawnych` char(1) collate utf8_unicode_ci DEFAULT NULL,
  27. `lodowka_w_pokoju` char(1) collate utf8_unicode_ci DEFAULT NULL,
  28. `boisko` char(1) collate utf8_unicode_ci NOT NULL,
  29. `sprzet_plazowy` char(1) collate utf8_unicode_ci NOT NULL,
  30. `udostepniamy_rowery` char(1) collate utf8_unicode_ci NOT NULL,
  31. `dostep_do_internetu` char(1) collate utf8_unicode_ci NOT NULL,
  32. `plac_zabaw` char(1) collate utf8_unicode_ci NOT NULL,
  33. `sejf` char(1) collate utf8_unicode_ci NOT NULL,
  34. `akceptujemy_zwierzeta` char(1) collate utf8_unicode_ci NOT NULL,
  35. `mikrofalowka` char(1) collate utf8_unicode_ci NOT NULL,
  36. `grill` char(1) collate utf8_unicode_ci NOT NULL,
  37. `aneks_kuchenny` char(1) collate utf8_unicode_ci NOT NULL,
  38. `tenis_stolowy` char(1) collate utf8_unicode_ci NOT NULL,
  39. `czajnik` char(1) collate utf8_unicode_ci NOT NULL,
  40. `bilard` char(1) collate utf8_unicode_ci NOT NULL,
  41. `klimatyzacja` char(1) collate utf8_unicode_ci NOT NULL,
  42. `pralka` char(1) collate utf8_unicode_ci NOT NULL,
  43. `sprzatanie` char(1) collate utf8_unicode_ci NOT NULL,
  44. `karta` char(1) collate utf8_unicode_ci NOT NULL,
  45. `parking` char(1) collate utf8_unicode_ci NOT NULL,
  46. `niemiecki` char(1) collate utf8_unicode_ci NOT NULL,
  47. `restauracja` char(1) collate utf8_unicode_ci NOT NULL,
  48. `angielski` char(1) collate utf8_unicode_ci NOT NULL,
  49. `tv` char(1) collate utf8_unicode_ci NOT NULL,
  50. `data` date NOT NULL,
  51. `status` char(1) collate utf8_unicode_ci NOT NULL,
  52. `f1` varchar(60) collate utf8_unicode_ci NOT NULL,
  53. `f2` varchar(60) collate utf8_unicode_ci NOT NULL,
  54. `f3` varchar(60) collate utf8_unicode_ci NOT NULL,
  55. `f4` varchar(60) collate utf8_unicode_ci NOT NULL,
  56. `f5` varchar(60) collate utf8_unicode_ci NOT NULL,
  57. `f6` varchar(60) collate utf8_unicode_ci NOT NULL,
  58. `f7` varchar(60) collate utf8_unicode_ci NOT NULL,
  59. `f8` varchar(60) collate utf8_unicode_ci NOT NULL,
  60. `f9` varchar(60) collate utf8_unicode_ci NOT NULL,
  61. `f10` varchar(60) collate utf8_unicode_ci NOT NULL,
  62. `szer` varchar(22) collate utf8_unicode_ci NOT NULL,
  63. `dl` varchar(22) collate utf8_unicode_ci NOT NULL,
  64. `panoramka` varchar(60) collate utf8_unicode_ci NOT NULL,
  65. `special` smallint(6) NOT NULL,
  66. `polecany` smallint(6) NOT NULL,
  67. `lazienkawpokoju` char(1) collate utf8_unicode_ci NOT NULL,
  68. `licznik` smallint(6) NOT NULL DEFAULT '0',
  69. `datarejestacji` date NOT NULL,
  70. `tokken` varchar(20) collate utf8_unicode_ci NOT NULL,
  71. PRIMARY KEY (`id`),
  72. UNIQUE KEY `id` (`id`)
  73. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
  74.  
  75. INSERT INTO `cms_obiekty` (`id`, `idusera`, `typobiektu`, `rodzajobiektu`, `otwarty`, `nazwa`, `kodpocztowy`, `miasto`, `ulica`, `tel`, `tel2`, `fax`, `email`, `gg`, `skype`, `www`, `cenaod`, `cenado`, `youtube`, `opis`, `za1osobe`, `za1domek`, `za1apartamentpokoj`, `lazienka`, `dostosowany_dla_niepelnosprawnych`, `lodowka_w_pokoju`, `boisko`, `sprzet_plazowy`, `udostepniamy_rowery`, `dostep_do_internetu`, `plac_zabaw`, `sejf`, `akceptujemy_zwierzeta`, `mikrofalowka`, `grill`, `aneks_kuchenny`, `tenis_stolowy`, `czajnik`, `bilard`, `klimatyzacja`, `pralka`, `sprzatanie`, `karta`, `parking`, `niemiecki`, `restauracja`, `angielski`, `tv`, `data`, `status`, `f1`, `f2`, `f3`, `f4`, `f5`, `f6`, `f7`, `f8`, `f9`, `f10`, `szer`, `dl`, `panoramka`, `special`, `polecany`, `lazienkawpokoju`, `licznik`, `datarejestacji`, `tokken`) VALUES
  76. (1, 78, 2, 1, '1', 'The Mexican', '81-123', 'SOPOT', 'Sobieskiego', '4354534534', '123467', '123456', 'nazwa@nazwa.com', '', '', 'www.nazwa.pl', 0, 0, '', 'opis', '', '', '', '', '1', '', '', '', '', '1', '', '', '', '', '', '', '', '', '', '', '', '', '1', '', '1', '', '1', '', '2012-12-31', '1', '', '', '', '', '', '', '', '', '', '', '0', 0', '', 0, 0, '', 672, '2011-01-16', ''),
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.08.2025 - 03:42