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

duda con operador like

Estas en el tema de duda con operador like en el foro de Mysql en Foros del Web. Hola mi problema es, si yo tengo esta consulta : $result = @mysql_query("SELECT * FROM nombre N WHERE N.nombre LIKE '%.$this->busqueda.%' ORDER BY N.nombre ASC ...
  #1 (permalink)  
Antiguo 23/01/2011, 16:38
 
Fecha de Ingreso: enero-2011
Ubicación: San Juan Argentina
Mensajes: 5
Antigüedad: 13 años, 10 meses
Puntos: 0
Pregunta duda con operador like

Hola mi problema es, si yo tengo esta consulta :
$result = @mysql_query("SELECT * FROM nombre N WHERE N.nombre LIKE '%.$this->busqueda.%' ORDER BY N.nombre ASC ");
y cuando busco coloco por ejemplo farmacia san martin... deberia devolverme los campos que coinciden o tengas "TODOS" los datos de la busqueda? porque por ejemplo a mi me devuelve consorcio san martin..? pero nunca puse consorcio. Acaso no deberia mostrar solo los que tengas farmacia san martin entre sus datos?

Gracias de antemano saludos
  #2 (permalink)  
Antiguo 24/01/2011, 07:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: duda con operador like

tatotava... si te fijas en tu consulta encierras el parametro de consulta entre %.
Este operador es un comodín que indica que todo campo(s) de busqueda contengan en cualquier parte la palabra que ingreses. Por lo que consorcio san martin te va a salir. Al igual que san martin de quilichao si lo tuvieses.

si quieres una busqueda exacta prueba con el = y no con el like. Ahora bien, si solo pones un comodín al principio o al final, la busqueda obliga al operador like a que empiece o termine con el campo indicado.

Mira este minitutorial de la sentencia like.
http://www.programacionfacil.com/mysql:select_like

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 24/01/2011, 14:21
 
Fecha de Ingreso: enero-2011
Ubicación: San Juan Argentina
Mensajes: 5
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: duda con operador like

Gracias huesos, sabia lo de like, el problema no es si ingreso ejemplo san martin, sino por ejemplo al ingresar: farmacia san martin me da como uno de los resultados: consorcio san martin y luego me entrega farmacia san martin. ??? eso me desconcierta un poco ya que si ingreso farmacia san martin... como es que me muestra consorcio san martin??? por mas que coincida san martin, deberia decir farmacia en alguna parte y de hecho no lo dice. por eso mi consulta , muchas gracias por la ayuda
  #4 (permalink)  
Antiguo 24/01/2011, 15:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: duda con operador like

ese si está raro. Seguro tienes bien la consulta?

Código MySQL:
Ver original
  1. mysql> SELECT *FROM tabla;
  2. +----------------------+
  3. | campo              |
  4. +----------------------+
  5. | consorcio san martin |
  6. | farmacia san martin  |
  7. +----------------------+
  8. 2 rows in set (0.00 sec)
  9.  
  10. mysql> SELECT *FROM tabla WHERE campo LIKE '%farmacia san martin%';
  11. +---------------------+
  12. | campo              |
  13. +---------------------+
  14. | farmacia san martin |
  15. +---------------------+
  16. 1 row in set (0.01 sec)

mira que en el ejemplo corre sin problemas

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 24/01/2011, 16:35
 
Fecha de Ingreso: enero-2011
Ubicación: San Juan Argentina
Mensajes: 5
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: duda con operador like

Ya encontre el problema, gracias huesos el problema estaba en otro lado. PROBLEMA RESUELTO

Etiquetas: formas
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 02:31.