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

¿como hacer un like que me muestre por ejemplo, ricas palomitas?

Estas en el tema de ¿como hacer un like que me muestre por ejemplo, ricas palomitas? en el foro de Mysql en Foros del Web. que le de buscar ricas palomitas o palomitas ricas. y me regrese el mismo registro? otro ejemplo: si pongo pasto y vaca, me debe de ...
  #1 (permalink)  
Antiguo 22/03/2016, 10:45
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
¿como hacer un like que me muestre por ejemplo, ricas palomitas?

que le de buscar ricas palomitas o palomitas ricas.
y me regrese el mismo registro?

otro ejemplo: si pongo pasto y vaca, me debe de salir el contenido aunque las oraciones estén así:

la vaca come pasto
come pasto la vaca

otro ejemplo: si pongo sistema solar o pongo jupiter quinto planeta, debe de salirme

Jupiter es el quinto planeta del sistema solar
En el sistema solar se encuentra Jupiter el quinto planeta


es casi lo mismo y la oración las contiene.
como hacer eso con un like.
¿Así como Google?
no lo quiero tan sofisticado solo quiero que si pongo júpiter y sistema, relacione que se refiere a ese contenido.

lo que yo uso tiene que ser la palabra u oración exacta para que la encuentre.

¿O es acaso que debo hacer una megaconsulta con expresiones regulares?(cosa muy difícil).

¿o simplemente poner opción de palabras clave cuando el usuario cree el tema?
aunque me gustaría que fuera automático.
¿alguna sugerencia?

de antemano gracias..
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #2 (permalink)  
Antiguo 22/03/2016, 15:23
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: ¿como hacer un like que me muestre por ejemplo, ricas palomitas?

Hola minombreesmm:

No es recomentable usar y/o abusar del operador LIKE, ya que éste tiene un pésimo desempeño.

El tema de las búsquedas es bastante extenso, pero se acuerdo a lo que quieres hacer, creo que lo más conveniente es que utilices BÚSQUEDAS DE TEXTO COMPLETO.

http://dev.mysql.com/doc/refman/5.7/...xt-search.html

Dale un vistazo al manual de referencia para que veas cómo trabajan, creo que es exactamente lo que quieres hacer.

Saludos
Leo.
  #3 (permalink)  
Antiguo 22/03/2016, 15:49
 
Fecha de Ingreso: diciembre-2010
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: ¿como hacer un like que me muestre por ejemplo, ricas palomitas?

Soy novato en esto, pero como lo quieres con LIKE:

Código MySQL:
Ver original
  1. SELECT `texto` FROM `tabla` WHERE (`texto`  LIKE '%ricas%' AND `texto` LIKE '%palomitas%' )

los condicionales LIKE los puedes crear con una función que use EXPLODE y FOREACH, si usas PHP. Saludo
  #4 (permalink)  
Antiguo 23/03/2016, 09:05
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: ¿como hacer un like que me muestre por ejemplo, ricas palomitas?

La solución que propone royerromero funciona, pero como expuse en mi post anterior, NO SE DEBE ABUSAR DEL USO DE CONDICIONES LIKE, y sobre todo del uso de condiciones LIKE tipo '%algo%', es decir, utilizando comodines a ambos lados de la cadena a buscar...

Estas condiciones son en la práctica las que peor rendimiento tienen en MySQL, por lo tanto, si estamos hablando de una tabla con muchos registros o un servidor con pocos recursos, te puede causar verdaderos problemas. Además, las búsquedas de texto completo son mucho más versátiles, royerromero propone agregar una condición LIKE por cada palabra de tu frase a buscar, con operadores AND, lo que implicaría que el texto debe contener todas las palabras... si lo haces con OR entonces mostraría aquellas que tengan al menos una de las palabras, pero ahí queda el asunto.

Con las búsquedas de texto completos haces una combinación de estas dos busquedas, pero tienes la posibilidad de limitar los resultados.

Saludos
Leo.

Etiquetas: ejemplo
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 04:05.