sql >> Databasteknik >  >> RDS >> Mysql

MySQL:Leta efter samma sträng i flera kolumner

Enkel lösning:

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

Du kan lägga till avgränsare mellan kolumner om det behövs:

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

Du kan också använda en fulltextsökning (du måste skapa ett fulltextindex som beskrivs här:Hur fungerar FULLTEXT INDEX på flera kolumner? )

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


  1. SQL - felkod 1005 med felnummer 121

  2. Konvertera SQLite till JSON

  3. MySQL:Exekvering av vald fråga och hämtningstid för resultat ökar med antalet anslutningar

  4. Hur Setseed() fungerar i PostgreSQL