Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/11/2012, 10:36
kceres
 
Fecha de Ingreso: mayo-2009
Ubicación: La Habana
Mensajes: 92
Antigüedad: 15 años
Puntos: 0
Respuesta: Replace+mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Podrías explicar cómo es la lógica que aplicas a ese SELECT, y de qué forma se supone que esa búsqueda te devuelve algo que buscas?
Así como está, no parece muy entendible...
Hola ...gracias por la rápida respuesta ...me explico mejor.

Código MySQL:
Ver original
  1. (LENGTH(title) - LENGTH(REPLACE(LOWER(title), LOWER('an'), ''))) / LENGTH('an') AS count,
  2. title
  3. *
  4. FROM items
  5. *
  6. WHERE title LIKE '%an%'

quité del sql anterior las cosas que no vienen al caso.

empiezo por lo fácil:

Código MySQL:
Ver original
  1. WHERE title LIKE '%an%'

aquí lo que estoy haciendo es buscando una semejanza entre las palabras ...un clásico LIKE

Código MySQL:
Ver original
  1. (LENGTH(title) - LENGTH(REPLACE(LOWER(title), LOWER('an'), ''))) / LENGTH('an') AS count

aquí lo que estoy haciendo es viendo las veces que se repite una palabra dentro del campo title ...por ejemplo ...si el campo tiene una longitud de 45 caracteres y la palabra que estoy buscando tiene una longitud de 5 caracteres la salida puede ser lo siguiente:

0 -> si no se reemplazo la cadena.
1-> si se encontró una coincidencia solamente
...
n -> si se encontró n coincidencias en el campo titulo

de esta forma puedes encontrar las veces que esta repetido un substring dentro del campo title y después ordenar DESC para tener las mayores coincidencias entre los primeros resultados.

Es que estoy usando InnoDB y no puedo realizar un Indice FULLTEXT ...la idea era esa, pero bueno.

bueno, espero haberme explicado un poco mejor ...otra vez gracias.