Autor | Zpráva | ||
---|---|---|---|
Usinaxek Profil * |
#1 · Zasláno: 27. 10. 2015, 12:24:15
Potřebuji kontrolovat data v mySQL a právě jsem zjistil, že atribut='2' AND atribut='3' není vůbec totéž jako atribut IN (2,3).
Problém je, že potřebuji, aby podmínku splnili oba dva, tj. jak atribut='2', tak i atribut='3'. V čem je tedy problém? Data mám v array() a pro výpis mně napadl jen implode, jenže jen nezvládne atribut='' AND atribut='' .... V array() samozřejmě může být jeden nebo i deset různých čísel. Poradíte jak na to? |
||
anonymníí Profil * |
#2 · Zasláno: 27. 10. 2015, 12:27:55
Usinaxek:
Buď použij OR místo AND , nebo čistčí IN .
... WHERE atribut IN (2, 3) |
||
Dan Charousek Profil |
#3 · Zasláno: 28. 10. 2015, 10:48:52
Usinaxek:
První varianta podmínky (atribut = 'x' AND atribut = 'y') je už z logického hlediska vždy nepravdivá. Atribut přeci nemůže mít zároveň hodnotu 'x' a 'y' Jak správně uvádí anonymníí, stačí použít OR nebo IN (který bych také doporučil). V kombinaci s implode() to je otázka pár řádků:
$data = [1, 2, 3, 4]; $sql = "SELECT * FROM table WHERE atribut IN (" . implode(", ", $data) . ")"; // můžeš si zkusit dotaz vypsat, abys věděl, jak se poskládal. $query = $mysqli->query($sql); |
||
Alphard Profil |
#4 · Zasláno: 28. 10. 2015, 11:18:55
Usinaxek:
„Problém je, že potřebuji, aby podmínku splnili oba dva, tj. jak atribut='2', tak i atribut='3'.“ Možná hledáte Diskuse JPW: Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení položek mající všechny hledané vlastnosti. |
||
Časová prodleva: 8 let
|
0