Gyors kérdés PHP-ből: két rekordot szeretnék kiválasztani, aminek a numbere 1801 és 1802. $sql = "SELECT * FROM `albumlist` WHERE `albumlist`. `number` = 1801 || 1802"; ilyenkor az egész táblát listázza, ha && van, akkor meg csak az elsőt?
Mukodik ilyen dupla operatorral az sql?? Akkor csak nekem kerulte el a figyelmemet
Akar igyis lehet:
Albumlist.Number in (1801,1802)
Igen, (bizonyos sql szerverek esetén) működik a || és &&, csak nem azt csinálja, ait a kérdező szeretne.
"Vagy" ("||") esetében azokat a rekordokat adja vissza ahol a number 1801 vagy az 1802 igaz (ami konstans igaz) tehát mivel a vagy feltétel második fele igaz így minden rekordot visszaad.
"És" ("&&") esetében azokat a rekordokat adja vissza ahol a number 1801 és 1802 igaz (ami konstans igaz) tehát a második feltétel elhagyható, azaz csak az 1801-es számú rekordod adja vissza.
A kérdező gondolom a következő where feltételt szerette volna írni:
`number` = 1801 || `number` = 1802
Sqlben amúgy nem "||"-t és "&&"-t szokás íri, hanem OR-t és AND-et, tehát:
`number` = 1801 OR `number` = 1802
Vagy pedig használható az IN operátor, mint fentebb írták.
Amúgy ez nem PHP kérdés, hanem SQL kérdés.
Illetve még annyit hozzátennék, hogy kérdés megfogalmazása ("két rekordot szeretnék kiválasztani, aminek a numbere 1801 és 1802") is pontatlan.
Te nem azt a kér rekordot szeretnéd visszaadni aminek a number-e 1801 és 1802, hiszen ilyen nincs, egy rekordnak nem lehet 2 number-e.
A kérdés (eleje) így hangzana helyesen:
két rekordot szeretnék kiválasztani, azt, aminek a numbere 1801 és azt, aminek a numbere 1802.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!