我想做一个连接,其中一列包含来自另一个表的列的字符串:
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,而不是列的实际值。
答案 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_name
中b.full_name
第一次出现的位置:
SELECT
a.first_name,
b.age
FROM
names a JOIN ages b
ON LOCATE(a.first_name, b.full_name)
如果匹配,则加入将成功。