Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Suchen Sie in mehreren Spalten nach derselben Zeichenfolge

Einfache Problemumgehung:

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

Sie können bei Bedarf Trennzeichen zwischen Spalten hinzufügen:

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

Sie können auch eine Volltextsuche verwenden (Sie müssen einen Volltextindex erstellen, wie hier beschrieben:Wie funktionieren VOLLTEXTINDIZES auf mehreren Spalten? )

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