Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:procure a mesma string em várias colunas


Solução simples:
SELECT * 
FROM projects 
WHERE 
    CONCAT(category,name,description,keywords,type) LIKE '%query%' 
ORDER BY name ASC;

Você pode adicionar separadores entre colunas, se necessário:
SELECT * 
FROM projects 
WHERE 
    CONCAT(category,"|",name,"|",description,"|",keywords,"|",type) LIKE '%query%' 
ORDER BY name ASC;

Você também pode usar uma pesquisa de texto completo (você precisa criar um índice de texto completo conforme descrito aqui:Como funcionam os FULLTEXT INDEXES em várias colunas? )
SELECT *, MATCH (category,name,description,keywords,type) AGAINST ('query') AS score FROM projects WHERE MATCH (category,name,description,keywords,type) AGAINST ('query');