sql >> Base de Datos >  >> RDS >> Mysql

Búsqueda de nombres en varias columnas MySQL

Su mejor apuesta aquí es crear un índice de TEXTO COMPLETO que abarque los dos campos

Paso 1) Cree un archivo de palabras vacías con solo tres palabras

echo "a"> /var/lib/mysql/stopwords.txt
echo "un">> /var/lib/mysql/stopwords.txt
echo "el">> /var/lib/ mysql/stopwords.txt

Paso 2) Agregue estas opciones a /etc/my.cnf

ft_min_word_len=2
ft_stopword_file=/var/lib/mysql/stopwords.txt

Paso 3) Cree un índice FULLTEXT en las columnas de nombre y apellido

Usuarios de ALTER TABLE AGREGAR TEXTO COMPLETO first_last_name_index (primero, apellido);

Paso 4) Implementa la función MATCH en tu búsqueda

Algo como esto:

SELECCIONE * DE usuarios DONDE (COINCIDIR (primero, último) CONTRA ('Juan' EN MODO BOOLEANO)) Y (COINCIDIR (primero, último) CONTRA ('Doe' EN MODO BOOLEANO));

Haga clic aquí para obtener más información sobre la indexación de TEXTO COMPLETO