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

Problema con LIKE de MYSQL

Estas en el tema de Problema con LIKE de MYSQL en el foro de Mysql en Foros del Web. Estoy construyendo un buscador interno y propio. He leído que a la hora consultar los datos debo hacerlo con LIKE. El problema es que cuando ...
  #1 (permalink)  
Antiguo 24/06/2013, 16:33
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Problema con LIKE de MYSQL

Estoy construyendo un buscador interno y propio.

He leído que a la hora consultar los datos debo hacerlo con LIKE.

El problema es que cuando utilizo LIKE al utilizar parámetros de búsqueda que aparecen en muchos mensajes/posts la consulta me devuelve solo la coincidencia en el último mensaje.

no entiendo por qué.

les dejo el código escrito hasta el momento.

Código MySQL:
Ver original
  1. SELECT * FROM posts
  2. INNER JOIN usuarios
  3. WHERE posts.id_usuarios = usuarios.id AND post LIKE '%" .$this->parametros_busqueda. "%'
  4. ORDER BY idPosts ASC;

Última edición por gnzsoloyo; 24/06/2013 a las 16:58
  #2 (permalink)  
Antiguo 25/06/2013, 03:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con LIKE de MYSQL

Usa esta sintaxis és la actual

Código MySQL:
Ver original
  1. SELECT * FROM posts
  2. INNER JOIN usuarios ON posts.id_usuarios = usuarios.id
  3. WHERE posts.post LIKE '%" .$this->parametros_busqueda. "%'
  4. ORDER BY idPosts ASC;

En cuanto a la query no hay ninguna razon para que solo te muestre un registro si hay mas de uno que cumpla la condición. Eso tanto con la sintaxis JOIN ..ON que con la tuya.

Faltaria ver como trasladas el resultado a php y como lo imprimes.

Recuerda que LIKE '%" .$this->parametros_busqueda. "%' buscara los post que contengan TODOS los parametros de busqueda y en el orden que esten en $this->parametros_busqueda
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 25/06/2013, 03:43
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: Problema con LIKE de MYSQL

Cita:
Iniciado por quimfv Ver Mensaje
Usa esta sintaxis és la actual

Código MySQL:
Ver original
  1. SELECT * FROM posts
  2. INNER JOIN usuarios ON posts.id_usuarios = usuarios.id
  3. WHERE posts.post LIKE '%" .$this->parametros_busqueda. "%'
  4. ORDER BY idPosts ASC;

En cuanto a la query no hay ninguna razon para que solo te muestre un registro si hay mas de uno que cumpla la condición. Eso tanto con la sintaxis JOIN ..ON que con la tuya.

Faltaria ver como trasladas el resultado a php y como lo imprimes.

Recuerda que LIKE '%" .$this->parametros_busqueda. "%' buscara los post que contengan TODOS los parametros de busqueda y en el orden que esten en $this->parametros_busqueda
gracias! estuve leyendo la documentación oficial de mysql con fulltext y al parecer con fulltext te devuelve coincidencias de hasta un 50%, si hay más no devuelve coincidencias para evitar devolver todos los registros, puede ser entonces que con LIKE suceda lo mismo, no estoy seguro.

con gusto te pondría todo el código pero es php y no se puede porque esto es el foro de mysql.

pero voy a seguir investigando. muchas gracias por tu ayuda! :D

Etiquetas: join, select
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 13:41.