Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z sortowaniem i limitem
novdark
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.01.2012

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


Witam,
Mam problem z zapytaniem, nie wiem dlaczego i jak przerobić zapytanie aby działał RAND():

SELECT id_akt, tytul_akt, priorytet, data_wprowadzenia, tresc_akt
FROM akt
WHERE priorytet != 0
ORDER BY data_wprowadzenia desc, RAND() LIMIT 8


może ktoś potrafi udzielić mi pomocy, będę wdzięczny...
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Witam.

  1. SELECT
  2. `id_akt`,
  3. `tytul_akt`,
  4. `priorytet`,
  5. `data_wprowadzenia`,
  6. `tresc_akt`
  7. FROM
  8. `akt`
  9. WHERE
  10. `priorytet` != 0
  11. ORDER BY RAND()
  12. LIMIT 8


Doprecyzuj co chcesz osiągnąć?


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
novdark
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.01.2012

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


no tak wszystko się zgadza, tylko brakuje w tym wszystkim ORDER BY DESC. Potrzebuję posortować malejąco wg daty i dopiero wybrać te 8 rekordów, a następnie je wyświetlać w różnej kolejności.

Ten post edytował novdark 10.01.2012, 10:57:25
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




No to sie nie robi przecinka w order by bo to zupełnie czemu innemu służy...

  1. SELECT * FROM (
  2. SELECT id_akt, tytul_akt, priorytet, data_wprowadzenia, tresc_akt
  3. FROM akt
  4. WHERE priorytet != 0
  5. ORDER BY data_wprowadzenia DESC LIMIT 8) podsel ORDER BY rand()


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

"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
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




W takim razie masz 2 wyjścia:
a) albo mieszasz po stronie php już i nie robisz rand() w zapytaniu,
b) albo robisz order by data desc z limit 8 jako podzapytanie będące we FROM i dopiero to robisz jako order by rand()
Coś na zasadzie
  1. SELECT * FROM (SELECT * FROM tabela ORDER BY DATA DESC LIMIT 8) AS podzap ORDER BY rand()


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
novdark
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.01.2012

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


Dzięki bardzo. Dokładnie o to mi chodziło smile.gif.
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 Aktualny czas: 19.08.2025 - 14:13