sql >> Databáze >  >> RDS >> Mysql

MySQL:Hledejte stejný řetězec ve více sloupcích

Jednoduché řešení:

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

V případě potřeby můžete mezi sloupce přidat oddělovače:

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

Můžete také použít fulltextové vyhledávání (je třeba vytvořit fulltextový index, jak je popsáno zde:Jak fungují FULLTEXTOVÉ INDEXY ve více sloupcích? )

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


  1. Tabulka Laravel Migration již existuje, ale chci přidat novou, ne starší

  2. Přidání kroku úlohy do existující úlohy agenta SQL Server (T-SQL)

  3. SQL:Jaké je výchozí pořadí dotazů?

  4. Vyhněte se JTextField setText opakování v programu