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
運算符將字符串連接在一起。大多數人使用||