Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   Consulta SQL devuelve resultados de mas (http://www.forosdelweb.com/f86/consulta-sql-devuelve-resultados-mas-580865/)

Vj_DarkHunter 28/04/2008 12:51

Consulta SQL devuelve resultados de mas
 
Me pregunto si esta consulta es correcta, ya que lo que quiero es que devuelva los resultados donde categoria sea 2 o 3 o 4 o 5 o...o 13 Y titulo sea "vivienda".

Lo que ocurre es que me devuelve:

Vivienda rural domotica
Anuncio 2
Anuncio 3
...

Devuelve 7 resultados pero "vivienda" solo esta en dos, en cambio por categoria si esta bien, solo devuelve las se encuentran entre las que he puesto.

La consulta es la siguiente:

select * from usuarios where categoria = 2 or categoria = 3 or categoria = 4 or categoria = 5 or categoria = 6 or categoria = 7 or categoria = 8 or categoria = 9 or categoria = 10 or categoria = 11 or categoria = 12 or categoria = 13 and titulo like "%vivienda%"

Espero que me entendais. Gracias.

reel 28/04/2008 12:57

Re: Consulta SQL devuelve resultados de mas
 
Hay algo que se llama precedencia de operadores, te recomiendo que los estudies.

Mientras te recomiendo que los cambies de esta forma:

select * from usuarios where (categoria = 2 or categoria = 3 or categoria = 4 or categoria = 5 or categoria = 6 or categoria = 7 or categoria = 8 or categoria = 9 or categoria = 10 or categoria = 11 or categoria = 12 or categoria = 13) and titulo like "%vivienda%"

Saludos,

Vj_DarkHunter 29/04/2008 07:49

Re: Consulta SQL devuelve resultados de mas
 
Gracias por tu respuesta reel, ha funcionado a la perfeccion. Nunca habia visto usar parentesis en las consultas, pero me he dado cuenta de cual es el sentido. Gracias nuevamente.

gnzsoloyo 29/04/2008 11:31

Re: Consulta SQL devuelve resultados de mas
 
Es mejor simplificar código:
Código:

SELECT *
FROM usuarios
WHERE categoria IN(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) 
AND titulo lLIKE '%vivienda%';

Sino sólo un mago encontraría el errror, si se produce alguno.


La zona horaria es GMT -6. Ahora son las 07:13.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.