36

重複の可能性:
like を使用した mysql 結合クエリ?

ある列に別のテーブルの列の文字列が含まれる結合を行いたい:

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 を検索するだけだからです。

4

2 に答える 2

58

文字列を連結するだけでよく、検索と置換を行うこともできます。

SELECT
    a.first_name,
    b.age
FROM names a
JOIN ages b
ON b.full_name LIKE '%' + a.first_name + '%'
于 2013-02-04T22:21:31.067 に答える
28

CONCAT を使用できます。

SELECT
  a.first_name,
  b.age
FROM
  names a JOIN ages b
    ON b.full_name LIKE CONCAT('%', a.first_name, '%')

または、 inが最初に出現した位置を返すLOCATE :a.first_nameb.full_name

SELECT
  a.first_name,
  b.age
FROM
  names a JOIN ages b
  ON LOCATE(a.first_name, b.full_name)

一致する場合、結合は成功します。

于 2013-02-04T22:23:05.257 に答える