Actualmente, estoy haciendo una función de búsqueda. Digamos que en mi base de datos, tengo estos datos:¿Cómo hacer coincidir y ordenar por similitud en MySQL?
- Palabra clave1
- clave2
- KEYWORD3
- Keysomething
- clave
y el usuario introduce: "clave" como el palabra clave para buscar Esta es mi consulta actual:
SELECT * FROM data WHERE (
data_string LIKE '$key%' OR
data_string LIKE '%$key%' OR
data_string LIKE '%$key'
)
Básicamente, tengo 2 preguntas:
¿Cómo puedo ordenar siguientes (en orden por) de similitud. En el ejemplo anterior, quería "Clave" como mi primer resultado. Mi resultado actual es: Keyword1, Keyword2, Keyword3, Keysomething y Key
Mi búsqueda SQL solo busca por la columna "data_string", ¿qué sucede si quiero buscar otras columnas? ¿Necesito hacer algo como esto:
SELECT * FROM data WHERE (
data_string LIKE '$key%' OR
data_string LIKE '%$key%' OR
data_string LIKE '%$key'
) OR (
data_other LIKE '$key%' OR
data_other LIKE '%$key%' OR
data_other LIKE '%$key'
) -- ...
¿Hay alguna consulta mejor/más rápido que la Q2?