suponer que estamos llevando a cabo la búsqueda con las palabras clave: keyword1, keyword2, la palabra clave3Mysql: ordenar por similares?
hay registros en la base de datos con la columna "Nombre":
1: John Doe 2: Samuel Doe 3: John Smith 4: Anna Smith
ahora consulta:
SELECT * FROM users WHERE (name LIKE "%John%" OR name LIKE "%Doe%")
lo hará seleccione registros: 1,2,3 (en este orden) pero quiero ordenarlo por palabra clave en el ejemplo keyword1=John, keyword2=Doe
, por lo que debe aparecer por palabras clave: 1,3,2 (porque quiero realizar la búsqueda de "Doe" después de buscar "John")
Estaba pensando en SELECT DISTINCT FROM (...... UNION .....)
pero será mucho más fácil pedirlo de alguna manera de otra manera (la consulta real es realmente largo)
¿Hay algún truco para crear tal orden?
sí, que funciona, gracias :) – dfens
una cosa más - si entiendo correctamente todos los COMO será ejecutado 2 veces en toda consulta? – dfens
@dfens: Supongo que el 'LIKE' en la cláusula' ORDER BY' se ejecutará solo en los datos que coincidan con la cláusula 'WHERE', por lo que debería ser más rápido. – RedFilter