MySQLの2つのフィールドのlikeブラーマッチング
931 ワード
一般的な状況
tb 1テーブルのフィールドaにキーワード「abc」が含まれている文法を選択すると、私たちはこのように書くことができません.
に質問
しかし、フィールドを曖昧に一致させるには?こう書いてみました.
上記のようにlikeファジイマッチングはtb 1にしか一致しない.a=tb2.bの結果、正しくなくて、検索して、ネット上から答えを見つけます:
MySQLの実行エラーは、他のデータベースではこのように書くことができると推定されますが、MySQLには適用されません.どうすればいいですか.ネットでは他の答えが見つかりません.
ソリューション
concatを試してみますか?
成功した!良い解決、完璧です.
更新文を書きたい場合は、次のように適用されます.
tb 1テーブルのフィールドaにキーワード「abc」が含まれている文法を選択すると、私たちはこのように書くことができません.
SELECT * FROM tb1 JOIN tb2 ON tb1.a=tb2.a
WHERE tb1.b LIKE '%a%'
に質問
しかし、フィールドを曖昧に一致させるには?こう書いてみました.
SELECT * FROM tb1 JOIN tb2 ON tb1.a=tb2.a
WHERE tb1.b LIKE tb2.b
set xx=xx
上記のようにlikeファジイマッチングはtb 1にしか一致しない.a=tb2.bの結果、正しくなくて、検索して、ネット上から答えを見つけます:
SELECT * FROM tb1 JOIN tb2 ON tb1.a=tb2.a
WHERE tb1.b LIKE '%'+tb2.b+'%'
MySQLの実行エラーは、他のデータベースではこのように書くことができると推定されますが、MySQLには適用されません.どうすればいいですか.ネットでは他の答えが見つかりません.
ソリューション
concatを試してみますか?
SELECT * FROM tb1 JOIN tb2 ON tb1.a=tb2.a
WHERE tb1.b LIKE CONCAT('%',tb2.b,'%')
成功した!良い解決、完璧です.
更新文を書きたい場合は、次のように適用されます.
update tb1 join tb2 on tb1.a like concat('%',tb2.a,'%')
set tb1.xx=tb2.xx
where xxx;