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

MySQL:cerca la stessa stringa in più colonne

Soluzione semplice:

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

Se necessario, puoi aggiungere separatori tra le colonne:

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

Puoi anche utilizzare una ricerca fulltext (devi creare un indice fulltext come descritto qui:Come funzionano gli INDICI FULLTEXT su più colonne? )

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