Portál AbcLinuxu, 5. listopadu 2025 08:06
V kazdom pripade netusim, ako to takymto sposobom premiesat a kludne aj viackrat premiesat.
Moja predstava je taka, ze si kazdy den o polnoci predpripravim takuto zmiesaninu s datumom noveho dna a potom si uz skript iba vzdy siahne do db pre dalsi zaznam a spatne zaznaci, ze uz bol dany zaznam dnes vybraty. Diky moc za navedenie na cestu.
MySQL takže ORDER BY RAND() zafunguje, ale jestli to je M$SQL, tak ne, tam se hodnota RAND() generuje pro dotaz, ne pro řádek.
ORDER BY NEWID(), ale asi to je zbytecne resit, protoze tazatel psal ze to potrebuje pro MySQL
SET @r := (SELECT ROUND(RAND() * (SELECT COUNT(*) FROM mytable)));
SET @sql := CONCAT('SELECT * FROM mytable LIMIT 1 OFFSET ', @r);
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
Popř. lze samozřejmě dotaz složit i na klientovi, todle je čistě MySQL řešení...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.