可能性のある複製:
mysql join query using like?
1つの列に別のテーブルの列の文字列が含まれる結合を実行したい:
SELECT
a.first_name,
b.age
FROM names a
JOIN ages b
ON b.full_name LIKE '%a.first_name%'
これは可能ですか? MySQLを使用しています。もちろん、LIKE '%a.first_name%'は文字列a.first_nameを検索するだけで、列の実際の値を検索しないため、上記のクエリは機能しません。
文字列を連結するだけでよく、検索と置換を行うこともできます。
SELECT
a.first_name,
b.age
FROM names a
JOIN ages b
ON b.full_name LIKE '%' + a.first_name + '%'
CONCATを使用できます。
SELECT
a.first_name,
b.age
FROM
names a JOIN ages b
ON b.full_name LIKE CONCAT('%', a.first_name, '%')
または [〜#〜] locate [〜#〜] 、a.first_name
でb.full_name
が最初に現れる位置を返します。
SELECT
a.first_name,
b.age
FROM
names a JOIN ages b
ON LOCATE(a.first_name, b.full_name)
一致する場合、結合は成功します。