Autor Zpráva
4ever
Profil
Tenhle select bych dokázal udělat pomocí dvou sql příkazů, ale ten druhý by byl dost složitý a vyžadoval by složitou přípravu klauzule where, tak se chci zeptat jestli víte o způsobu jak to udělat jednodušeji.

Jde o to vybrat skupinu řádků, splňující určité pravidlo (např. WHERE b = 1 LIMIT 8,10 ORDER BY random() ) a tuto skupinu potom zpracuju v php a vytvořím z toho jedno pole (např. $positive_arr).

Poté získat druhou skupinu řádků, které splňují stejné pravidlo, ale v této skupině, již nebudou zahrnuté záznamy, které byly v první skupině dat. A tuto skupinu potom zpracuju v php a vytvořím z toho druhé pole (např. $negative_arr).
Kajman_
Profil *
4ever:
Poté získat druhou skupinu řádků, které splňují stejné pravidlo

Tak je vemte hned všechny (když mají stejná pravidla) a do prvního pole s v php dejte jen tolik, kolik potřebujete.

Pokud to nezvládnete, klidně udělejte dva dotazy, svět se nezboří.
4ever
Profil
Kajman:
Pokud to nezvládnete, klidně udělejte dva dotazy, svět se nezboří.

Jo, asi to bude nejjednodušší. To vylučovací pravidlo, které id nechci zahrnout, vlastně mohu zpracovat rovnou během prvního cyklu s mysql_fetch_array.
Knight
Profil
SELECT * FROM `table` WHERE `id` NOT IN (SELECT `id` from `table` WHERE b = 1 LIMIT 8,10 ORDER BY random()) AND ....


Připadně pokud to bude vycházet z PHP pole, tak vhodně implodovat, aby vznikl dotaz ve tvaru:

SELECT * FROM `table` WHERE `id` NOT IN (1, 2, 3, 4, 5) AND ....


kde ta čísla jsou nechtěná ID.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0