2
我有一个包含文本的列的表,并且我想选择其中第二个表中的某行中的文本出现在该行中的所有表。这里是一个伪查询:MySQL:在LIKE上连接两个表
SELECT title FROM recipes AS r
JOIN ingredients AS i
ON r.ingredients LIKE '%' + i.name + '%';
但上述查询不起作用。我如何正确地做到这一点?
我有一个包含文本的列的表,并且我想选择其中第二个表中的某行中的文本出现在该行中的所有表。这里是一个伪查询:MySQL:在LIKE上连接两个表
SELECT title FROM recipes AS r
JOIN ingredients AS i
ON r.ingredients LIKE '%' + i.name + '%';
但上述查询不起作用。我如何正确地做到这一点?
您不能连接字符串与+
运算符(仅用于算术运算)。改为使用concat('%',i.name,'%')
。
SELECT title
FROM recipes r JOIN ingredients i ON r.ingredients LIKE concat('%', i.name, '%')
MySQL很奇怪,并且使您使用concat
运算符将字符串连接在一起。大多数人使用||