mysql - 查询中存在多个 LIKE 语句

标签 mysql sql xampp mariadb

我目前正在研究烘焙食谱的搜索引擎,该网站根据用户拥有的成分返回食谱。我只想以某种形式返回包含两种成分的食谱。我尝试了以下 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/

相关文章:

php - 如何使用 laravel 连接 mysql?

mysql - mysql中表连接后如何获取特定结果

sql - 无法执行脚本: Insufficient memory to continue the execution of the program

sql - Oracle SQL 查询效率提升

php - 我可以使用 header() 来传递查询字符串参数吗?

apache - 如何避免在 LAN 网站上出现自签名 SSL 警告?

php - 如何使用xampp将sql server与php连接起来?

javascript - 我正在尝试使用 mysql javascript API 删除数据库中的记录

php - 在电子邮件中设置密码恢复时间

sql - TSQL 更改过程(如果存在)- 语法错误