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

rhfm7lfc  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(294)

表x有一个字符串列y。它可能包含诸如“hi”、“blue”、“red”、“great”等值。它可能包含“大家好”、“天空是蓝色的,玫瑰是红色的”等值。
我想列出表x中的所有值,其中值包含在表a的b列的值中。例如,在上面,“blue”、“hi”和“red”应该返回,因为“hi everybody”包含“hi”。第二个值“天空是蓝色的,玫瑰是红色的”同时包含“红色”和“蓝色”“great”不会显示,因为它不在b列的任何值中。
我尝试过使用like,但似乎无法使用select(选择y,其中y在like concat中(“%”,从a中选择b,“%”)

6ojccjat

6ojccjat1#

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

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, '%')
)

演示

相关问题