Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :recherchez la même chaîne dans plusieurs colonnes

Solution de contournement simple :

SELECT * 
FROM projects 
WHERE 
    CONCAT(category,name,description,keywords,type) LIKE '%query%' 
ORDER BY name ASC;

Vous pouvez ajouter des séparateurs entre les colonnes si nécessaire :

SELECT * 
FROM projects 
WHERE 
    CONCAT(category,"|",name,"|",description,"|",keywords,"|",type) LIKE '%query%' 
ORDER BY name ASC;

Vous pouvez également utiliser une recherche plein texte (vous devez créer un index plein texte comme décrit ici :Comment fonctionnent les INDEX FULLTEXT sur plusieurs colonnes ? )

SELECT *, MATCH (category,name,description,keywords,type) AGAINST ('query') AS score FROM projects WHERE MATCH (category,name,description,keywords,type) AGAINST ('query');