SQL加入列LIKE另一列

时间:2013-02-04 22:20:25

标签: mysql sql join sql-like

  

可能重复:
  mysql join query using like?

我想做一个连接,其中一列包含来自另一个表的列的字符串:

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,而不是列的实际值。

2 个答案:

答案 0 :(得分:36)

您只需要连接字符串,您也可以进行搜索和替换。

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

答案 1 :(得分:19)

您可以使用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_nameb.full_name第一次出现的位置:

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

如果匹配,则加入将成功。