SELECT * FROM mm_tfs
WHERE product_slug LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
LIMIT 4
Restituisce 4 valori come sto chiedendo, ma la seguente dichiarazione restituisce 0 - esiste una regola sull'utilizzo dell'istruzione OR che non mi è familiare? La mia ipotesi è che dovrebbe restituire tutti i valori in 1 (o più se non fosse per il limite).SQL LIMIT non restituisce risultati dove nessun LIMIT restituisce risultati
SELECT * FROM mm_tfs
WHERE (product_slug LIKE '%football%'
AND schoolid = '8' AND category_id ='21')
OR (product_description LIKE '%football%'
AND schoolid = '8' AND category_id ='21')
LIMIT 4
NOTA dalla cyberkiwi primo o porzione di Q2 è esattamente la stessa della clausola WHERE Q1
product_description LIKE '%football%' AND schoolid = '8' AND category_id ='21
Senza OR Dichiarazione di per sé non produrre il risultato desiderato purché in quanto non ha il limite. Quando l'istruzione OR viene utilizzata anche con LIMIT, ci sono 0 valori restituiti.
SELECT * FROM mm_tfs
WHERE product_description LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
LIMIT 4
^- Che produce 0 risultati
SELECT * FROM mm_tfs
WHERE product_description LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
^- che produce risultati
La parte più strana di questo è che tutte queste query prodotto l'effetto proprio nel mio PHPMYADMIN Finestra di query SQL, ma non nell'applicazione stessa.
Sembra essere un errore logico booleano piuttosto che specifico per OR. Avvolgere l'intera cosa intorno alle parentesi graffe, questa è l'intera condizione intorno (e). – JonH
No, restituisce i valori –
Ciò è molto interessante. Qualcuno può spiegare perché è sbagliato invece di dare un approccio alternativo? +1 – Nishant