mysql - 为什么我从这个 SQL 查询中得到错误的结果?

标签 mysql sql database

我正在尝试创建一个简单的搜索脚本。

所以我写了以下内容:

SELECT *
FROM snm_content
WHERE
    state = 1 AND
    `catid` NOT IN ('15', '23') AND
    `title` LIKE '%test%' OR `introtext` LIKE '%test%' OR `fulltext` LIKE '%test%'

第一次检查 WHERE state = 1 失败,我得到状态为 -2 的结果。怎么可能?

这是我在 PHPmyadmin 中使用查询时的结果:

enter image description here

当明确编写 state 需要是 1 时,我如何仍然得到那个结果。

最佳答案

您需要在括号内应用您的 OR 子句

SELECT * FROM snm_content WHERE state = 1 AND `catid` NOT IN ('15', '23') AND 
(`title` LIKE '%test%' OR `introtext` LIKE '%test%' OR `fulltext` LIKE '%test%')

关于mysql - 为什么我从这个 SQL 查询中得到错误的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53187883/

相关文章:

mysql - 将频繁更新的列移至单独的表以获得更好的性能?

mysql根据另一个选择选择列的值

MySQL在where子句中自动将字符串转换为整数?

php - MySQL查询-如果不存在-插入-否则-更新

mysql - 错误1005(HY000): Can't create table 'shrewd_db.alert_disable_register' (errno: 150)

MySQL 从满足条件的行中选择字段,并从上面的行中选择字段

database - 罗斯文的替代品

mysql - GROUP BY 不同年份的连续月份

Mysql浮点型问题

php - MySql + InnoDB + PHP 单引号判别?