我目前正在研究烘焙食谱的搜索引擎,该网站根据用户拥有的成分返回食谱。我只想以某种形式返回包含两种成分的食谱。我尝试了以下 SQL 语句,但我似乎无法让它与之间的 AND 一起正常工作,无论使用 OR 还是不使用 AND,它都可以正常工作。
SELECT * FROM ingredients WHERE name LIKE '%flower%' AND name LIKE '%egg%'
它不会抛出任何错误,只是说没有任何结果,这很奇怪,因为第一个食谱中已经包含了机器人成分。
希望有人能帮帮我!提前致谢
最佳答案
使用聚合:
SELECT recipe_id
FROM ingredients i
GROUP BY recipe_id
HAVING SUM(name LIKE '%flower%') > 0 AND
SUM(name LIKE '%egg%') > 0;
请注意,“花”不太可能出现在食谱中(尽管有一些!)。 “面粉”更为常见。
关于mysql - 查询中存在多个 LIKE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59521699/