Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 14. 10. 2016, 06:45:21
Jak udělat SQL request, který by měl např. deset podmínek za WHERE a byly splněny všechny kromě jedné, dvou, tří apod. z celkového počtu podmínek?
SELECT * FROM tabulka WHERE podminka1 AND podminka2 AND podminka3 ... Vím, že by to šlo udělat permutací, ale ten dotaz by potom byl šíleně dlouhej. Je na to nějaký snadnější způsob? |
||
Kajman Profil |
V select části lze spočítat počet splněných
select tabulka.*, podminka1 + podminka2 + podminka3 splneno from tabulka having splneno=2 A pak to podle splneno můžete filtrovat nebo řadit. Velkou rychlost od toho nečekejte. Edit: druhá varianta SELECT sloupce_primarniho_klice, Count(*) splneno FROM (SELECT sloupce_primarniho_klice FROM tabulka WHERE podminka1 UNION ALL SELECT sloupce_primarniho_klice FROM tabulka WHERE podminka2 UNION ALL SELECT sloupce_primarniho_klice FROM tabulka WHERE podminka3) t GROUP BY sloupce_primarniho_klice HAVING splneno = 2 |
||
quatzael Profil |
#3 · Zasláno: 14. 10. 2016, 11:06:58
Kajman:
Dík moc! |
||
Časová prodleva: 9 let
|
0