Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema con MySQL

Estas en el tema de Problema con MySQL en el foro de Bases de Datos General en Foros del Web. Hola. Tengo un problema que no sé solucionar. Resulta que la consulta que os pondré a continuación no funciona como debería, pues muestra todos los ...
  #1 (permalink)  
Antiguo 17/05/2002, 16:39
 
Fecha de Ingreso: mayo-2002
Mensajes: 3
Antigüedad: 22 años
Puntos: 0
Problema con MySQL

Hola. Tengo un problema que no sé solucionar. Resulta que la consulta que os pondré a continuación no funciona como debería, pues muestra todos los registros sin hacer caso de la condición de la consulta.

SELECT * FROM base_de_datos WHERE campo1 LIKE '%palabra1%' OR campo1 LIKE 'palabra1' AND campo2='palabra2' limit 10

¿Cuál puede ser el fallo?
  #2 (permalink)  
Antiguo 17/05/2002, 17:34
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Problema con MySQL

El problema es el OR. Si queres que extraiga todo los campo1 que tengan dentro de su texto (a la izquierda o derecha) palabra1 , quitale la segunda condición (campo1 LIKE 'palabra1').

Recorda que si pones
a=1 or b=1, te mostrara todo donde a=1 o b=1, pero si alguna de las condiciones se cumple, siempre saca un resultado.

a=1 and b=1, te mostrara algún resultado siempre y cuando se cumpla a=1 y b=1... Si alguna de las condiciones es falsa, no va a mostrar nada.

Saludos

<p align="center"><font color="#008080">Si la patria es pequeña, uno
grande la sueña... <u>Ruben Darío</u>
[/CODE]</p>
  #3 (permalink)  
Antiguo 17/05/2002, 18:03
 
Fecha de Ingreso: mayo-2002
Mensajes: 3
Antigüedad: 22 años
Puntos: 0
Re: Problema con MySQL

Hola brujoNic. Resulta que el problema no va por ahí. De todas formas, justo 30 minutos despues de enviar el post, logré solucionar lo que ocurría. Resulta que MySQL toma la consulta comprobando primero los campos set, de forma que ha funcionado con solo permutar el criterio de consulta de esta forma:
SELECT * FROM base_de_datos WHERE campo2='palabra2' AND campo1 LIKE '%palabra1%' OR ...
Esto da a entender que pilla primero el AND que el OR (¿?). En cualquier caso, gracias, de veras. :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:35.