sql >> Database >  >> RDS >> Mysql

MySQL:zoek naar dezelfde string in meerdere kolommen

Eenvoudige oplossing:

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

U kunt indien nodig scheidingstekens tussen kolommen toevoegen:

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

U kunt ook een fulltext-zoekopdracht gebruiken (u moet een fulltext-index maken zoals hier beschreven:Hoe werken FULLTEXT INDEXES op meerdere kolommen? )

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


  1. mySQL selecteer IN bereik

  2. Schrijf GeoDataFrame in SQL Database

  3. MySQL Table bestaat niet fout, maar het bestaat wel

  4. php-mysql-versie conflicteert met Mysql-server