0
私の問題はかなり単純です - 少なくとも私はそれが願っています。私はMySQLで2つのテーブルを結合しようとしており、結果を生成するために連結フィールドにWHEREステートメントを実行します。ここではサンプルクエリは、次のとおりです。WHEREステートメント(マルチテーブル)のMySQL CONCAT
SELECT a.name, b.company, concat_ws(' ', a.company, b.name) as whole_name
FROM users as a
INNER JOIN company as b on a.company_id = b.company_id
HAVING whole_name LIKE '%IBM John%'
LIMIT 25
このクエリは、まだ名前の欄から引っ張っているように見えるし、結果を返しません。私はこれを試してみました:
SELECT a.name, b.company, concat_ws(' ', a.company, b.name) as whole_name
FROM users as a
INNER JOIN company as b on a.company_id = b.company_id
WHERE concat_ws(' ', a.company, b.name) LIKE '%IBM John%'
LIMIT 25
そして、それでも結果は出ません。データは絶対にテーブルの中にあります。 Johnの会社はIBM Computer Systemsです。 whole_name
フィールドは'IBM Computer Systems John Smith'
を返しますが、'%IBM John%'
のクエリは何も返しません。
助けが必要ですか?
おかげで、 グレッグ
だから、どこかのためのテキストに「IBMジョン」を探しています各検索語句を分割して '%'記号を追加する必要がありますか? '%IBM%%John%'のようなものですか? – gregavola
%はワイルドカードです。あなたは '%IBM%John%'を実行することができます。もしあなたが別個の単語であることを強制するならば、 '%IBM %% John%'はIBMを探します。後のどこかで、その後はどこかでジョンが続いた。 「IBMJohn」(スペースの不足)がテキスト内にある場合、 '%IBM%John%'も一致します。 – Ben