我试图弄清楚要使用哪个 mysql 代码。我尝试了以下脚本,其中包含我需要的所有搜索功能:
SELECT * FROM `zk_posts` WHERE `form_id` IN (3,6)
AND FROM_UNIXTIME(published, '%Y') = 2013
AND `message` LIKE '%search%'
OR `description` LIKE '%search%'
OR `name` LIKE '%search%';
首先,我只想显示 form_id 为 3 或 6 且发布年份为 2013 年的帖子。同时,我想在我的文本列中搜索这三个列中是否存在任何匹配项,但是通过将 OR 与 AND 结合使用它不会按我想要的方式工作。如果我运行这个 mysql,它会返回与 form_id 不匹配的帖子。
谁能告诉我他或她将如何解决这个问题。
最佳答案
像这样尝试一下...
SELECT * FROM `zk_posts` WHERE `form_id` IN (3,6)
AND FROM_UNIXTIME(published, '%Y') = 2013
AND (`message` LIKE '%search%'
OR `description` LIKE '%search%'
OR `name` LIKE '%search%');
关于php - OR 和 AND 组合失败 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16450772/