SELECT * FROM mm_tfs
WHERE product_slug LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
LIMIT 4
Devuelve 4 valores como los que estoy pidiendo, pero la siguiente declaración arroja 0: ¿existe una regla sobre el uso de la instrucción O con la que no estoy familiarizado? Mi suposición es que debería devolver todos los valores en 1 (o más si no fuera por el límite).SQL LIMIT no devuelve ningún resultado donde no LIMIT devuelve resultados
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 por cyberkiwi la primera o la porción de Q2 es exactamente la misma que la cláusula WHERE en Q1
product_description LIKE '%football%' AND schoolid = '8' AND category_id ='21
Sin la O declaración por sí mismo no producir el resultado deseado, siempre ya que no tiene el límite. Cuando la instrucción OR también se utiliza con el LÍMITE, se devuelven 0 valores.
SELECT * FROM mm_tfs
WHERE product_description LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
LIMIT 4
^- Eso produce 0 resultados
SELECT * FROM mm_tfs
WHERE product_description LIKE '%football%'
AND schoolid = '8' AND category_id ='21'
^- que produce resultados
Lo más extraño de esto es que todas estas preguntas sobre el producto el efecto deseado en mi PHPMYADMIN Ventana de consulta SQL, pero no en la aplicación en sí.
Parece ser un error lógico booleano en lugar de específico para OR. Envuelve todo alrededor de las llaves, esa es toda tu condición alrededor (y). – JonH
No, devuelve los valores –
Esto es muy interesante. ¿Alguien puede explicar por qué está mal en lugar de dar un enfoque alternativo? +1 – Nishant