※ ChatGPTを利用し、要約された質問です(原文:複数カラム検索で、LIKE "%検索語%")
複数カラム検索の効率的な方法とは?
このQ&Aのポイント
複数カラム検索を効率的に実施する方法について、MySQLの公式サイトなどで取り上げられています。具体的には、concat関数を使用してフィールドを結合し、LIKE演算子を使用して検索語を指定します。
「char(0)」についてですが、文字列結合の際に使用される特殊文字のひとつであり、フィールド間の区切り文字として利用されます。
「%データ%は全件を検索するため効率うんぬんを論ずるような仕組みではない」という意味は、LIKE検索が全件検索を行う仕組みではないため、効率性を論じる必要がないということです。また、「本番ではこんなことはしませんがあくまでも遊びということで」という文は、例示された方法は実際のシステムで使用するようなものではなく、あくまで遊びや実験的な目的で利用することを意味しています。
複数カラム検索をしたいと思い、リンク先の通り、
WHERE concat(field1,char(0),field2) LIKE "%検索語%"
としたらうまくいったのですが、
そのページに書いてあることが気になるので、教えてください
▽MySQLで複数フィールドから同一語を検索するには・・・ - MySQL - 教えて!goo
http://okwave.jp/qa/q2634613.html
・char(0)て何でしょうか?
>%データ%は全件を検索するため効率うんぬんを論ずるような仕組みではない
・どういう意味でしょうか?
・全件検索する際は、LIKE検索を使わないのでしょうか? 全文検索エンジン(?)を利用するのでしょうか?
・全件検索しなければ(例えば2カラムだけ)、LIKE検索を利用しても良いのでしょうか?
・あるいは、データ規模が少なければ、LIKE検索を利用しても良いのでしょうか?
>本番ではこんなことはしませんがあくまでも遊びということで
・どういう意味でしょうか?
・concatで LIKE 検索を普通はしない、ということでしょうか?
・それとも、LIKE 検索で、char(0)などのセパレータを挟まない、ということでしょうか?
・あるいは、全件検索でLIKE検索を普通は使わない、ということでしょうか?
お礼
詳しい説明ありがとうございました。 大変勉強になりましたー