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

Buscar y ordenar por cantidad de coincidencias

Estas en el tema de Buscar y ordenar por cantidad de coincidencias en el foro de Bases de Datos General en Foros del Web. Cita: Estoy haciendo una consulta SQL en ASP clásico sobre base de datos MS Acces. La consulta es simple. Es una base de datos donde ...
  #1 (permalink)  
Antiguo 14/02/2013, 14:07
 
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 1
Pregunta Buscar y ordenar por cantidad de coincidencias

Cita:
Estoy haciendo una consulta SQL en ASP clásico sobre base de datos MS Acces.

La consulta es simple.
Es una base de datos donde se publican preguntas y respuestas:

Código:
PREGUNTAS
------------------
id
pregunta
respuesta
La consulta SQL es de tipo:

Código:
SELECT *
FROM preguntas
WHERE
pregunta LIKE '%buscar%'
OR pregunta LIKE '%algo%'
OR respuesta LIKE '%buscar%'
OR respuesta LIKE '%algo%'
Lo que quiero y no consigo lograr es ordenar los resultados según la cantidad de coincidencias.

No es lo mismo un resultado donde encontró una de las palabras, que un resultado donde encontró las dos palabras. Me explico?

¿¿Alguien que lo haya hecho o como hacerlo??
Re-vivo el tema ya que sigo con el mismo problema, pero ahora migrado a SQL Server, supongo que con esta base de datos tengo muchísimas posibilidades mas, pero aún así no logro dar en el clavo.

Básicamente lo que quiero es listar los resultados de una búsqueda por mayor coincidencia, si dos resultados coinciden con algunas de las palabras buscadas las muestro en la lista, pero en primer lugar quiero que se muestre la que tiene mayor coincidencia.
  #2 (permalink)  
Antiguo 14/02/2013, 17:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Buscar y ordenar por cantidad de coincidencias

Para realizar tales ordenamientos tienes que trabajar con expresiones regulares e índices de tipo FULLTEXT (T-SQL: Busquedas de texto completo). Son los que te pueden acercar al resultado esperado.
Pero en cualquier caso, ten en cuenta que LIKE sólo busca una coincidencia, y no las cuenta. Por ende, necesitas otros tipos de consulta (y algunos conocimientos más de SQL), para lograr lo que quieres.

PD: No resucites temas, ni aún los propios. Serán cerrados directamente.
Si quieres resucitar un tema propio, vuelve a plantear la cosa con mejores datos y mayores detalles, o de lo contrario no obtendrás más soluciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 14/02/2013 a las 17:17
  #3 (permalink)  
Antiguo 15/02/2013, 09:05
 
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Buscar y ordenar por cantidad de coincidencias

Cita:
Iniciado por gnzsoloyo Ver Mensaje
PD: No resucites temas, ni aún los propios. Serán cerrados directamente.
Si quieres resucitar un tema propio, vuelve a plantear la cosa con mejores datos y mayores detalles, o de lo contrario no obtendrás más soluciones.
Ok

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Para realizar tales ordenamientos tienes que trabajar con expresiones regulares e índices de tipo FULLTEXT ([URL="http://msdn.microsoft.com/es-ar/library/ms142571.aspx"][B]T-SQL: Busquedas de texto completo[/B][/URL]). Son los que te pueden acercar al resultado esperado.
Gracias, estaré probando por ese lado.
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 12:50.