php - OR 和 AND 组合失败 MySQL

标签 php mysql sql select

我试图弄清楚要使用哪个 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/

相关文章:

mysql - 如何在 MySQL 5 .7 中实现 CTE 功能?

javascript - 将数据从模态插入数据库

PHP/MySQL : Display data from MySQL to PHP table

mysql - 在mysql中选择数据,其中分隔符是两个数据字母数字数据字段

php - 以 PHP 形式将格式化日期发送到数据库

mysql - "INNER JOIN"和 "LEFT JOIN"与 "GROUP BY"

php - 将 MySQL 查询转换为 Laravel 4.2 查询

php - 如何找到第二个字符串并获取其值(重复)

sql - MySQL 中的 Max Function 没有按照我想象的方式工作

sql - 关于加入和限制的复杂SQL查询