我有一个包含文本的列的表,我想选择所有表,其中第二个表中的一行中的文本出现在该行中。这是一个伪查询:
SELECT title FROM recipes AS r
JOIN ingredients AS i
ON r.ingredients LIKE '%' + i.name + '%';
然而,上述查询不起作用。我该如何正确地做到这一点?
答案 0 :(得分:3)
SELECT title
FROM recipes r JOIN ingredients i ON r.ingredients LIKE concat('%', i.name, '%')
MySQL很奇怪,让你使用concat
运算符将字符串连接在一起。大多数其他人使用||
答案 1 :(得分:2)
您无法使用+
运算符连接字符串(仅限算术运算)。请改用concat('%',i.name,'%')
。