sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Se efter den samme streng i flere kolonner

Enkel løsning:

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

Du kan tilføje separatorer mellem kolonner, hvis det er nødvendigt:

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

Du kan også bruge en fuldtekstsøgning (du skal oprette et fuldtekstindeks som beskrevet her:Hvordan fungerer FULLTEXT INDEXS på flere kolonner? )

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


  1. Oracle Datetime-funktioner (fuld liste)

  2. Gem flere rækker fra mysql-databasen i en enkelt variabel

  3. ALTER TABLE-sætningen var i konflikt med FOREIGN KEY-begrænsningen

  4. Slå videnskabelig notation MySQL fra