novdark
10.01.2012, 10:16:53
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...
rocktech.pl
10.01.2012, 10:52:00
Witam.
SELECT
`id_akt`,
`tytul_akt`,
`priorytet`,
`data_wprowadzenia`,
`tresc_akt`
FROM
`akt`
WHERE
`priorytet` != 0
ORDER BY RAND()
LIMIT 8
Doprecyzuj co chcesz osiągnąć?
novdark
10.01.2012, 10:56:06
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.
nospor
10.01.2012, 11:00:23
No to sie nie robi przecinka w order by bo to zupełnie czemu innemu służy...
SELECT * FROM (
SELECT id_akt, tytul_akt, priorytet, data_wprowadzenia, tresc_akt
FROM akt
WHERE priorytet != 0
ORDER BY data_wprowadzenia DESC LIMIT 8) podsel ORDER BY rand()
thek
10.01.2012, 11:03:19
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
SELECT * FROM (SELECT * FROM tabela ORDER BY DATA DESC LIMIT 8) AS podzap ORDER BY rand()
novdark
10.01.2012, 11:06:07
Dzięki bardzo. Dokładnie o to mi chodziło

.