2017-06-16 8 views
0

テーブルからレコードを選択したい。私はこのクエリを使用します:MySQL LIKEの使用以上の列

select * 
from crawler.crawler_data 
WHERE name_surname, category, description LIKE "%de%"; 

しかし、MySQLはこのクエリを受け入れません。すべての列をLIKEで検索したいLIKEステートメントで複数の列を検索するためにこのクエリを書くにはどうすればよいですか?

答えて

0

あなたはCONCATを使用することができます。

SELECT * FROM crawler_data WHERE CONCAT(name_surname, category, description) LIKE "%de%"; 

だから、それはあなたが単一の列にチェックしたいすべての列を連結しています。

あなたが探している文字列が2つの列間の分割を横切って見つかる可能性がありますので、誤ったポジティブを与えてしまうことがあります。あなたはセパレーターとを連結しているCONCAT_WSを使用することができ、これを解決するために

。だから、:

SELECT * FROM crawler_data WHERE 
CONCAT_WS('-',name_surname, category, description) LIKE "%de%"; 

もちろん、あなたが検索語(de)ではありません文字列のいくつかの並べ替えであることに区切り文字値(-)を設定します。

参考:MySQL Manaul

+0

ありがとう@Martin。それは完璧です! –

関連する問題