如何找到其字符串值出现在另一个表的列中的所有行?

时间:2018-06-01 04:39:34

标签: mysql

我的表X带有字符串列Y.它可能包含诸如" Hi"," Blue"," Red","等值。伟大"等 我有另一个表A,带有字符串列B.它可能包含诸如"嗨大家","天空是蓝色的,玫瑰是红色的。"。

我想列出表X中的所有值,其中值包含在表A的列B的值中。例如,在上面," Blue","嗨"和" Red"应该返回"大家好"包含"嗨"。第二个值,"天空是蓝色的,玫瑰是红色的"包含" Red"和"蓝"。 "大"不会显示,因为它不是B列的任何值。

我尝试过使用LIKE但它似乎不适用于选择(选择Y,其中Y就像concat一样('%&#39 ;,从A中选择B,&#39) ;%'))

1 个答案:

答案 0 :(得分:1)

您可以使用以下方法获得所需的结果

加入

SELECT tx.*
FROM tablex tx
JOIN tablea ta ON ta.columnB LIKE CONCAT('%', tx.columnY, '%')

已存在

SELECT *
FROM tablex tx
WHERE EXISTS (
    SELECT 1
    FROM tablea
    WHERE columnB LIKE CONCAT('%', tx.columnY, '%')
)

Demo