Mysql 不等于运算符失败?

标签 mysql sql

我有以下 mysql 表(简化):

CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`emails` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`phones` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`history` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

PRIMARY KEY (`id`),
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=259 ;

我有以下查询:

SELECT *
FROM mytable
WHERE emails LIKE '%addr@yahoo.com%'
OR phones LIKE '%addr@yahoo.com%'
AND history !='None'

这产生了 2 条记录:

INSERT INTO `mytable` (`id`, `emails`, `phones`, `history`) VALUES
(118, 'PLEASE SET', NULL, 0, 'addr@yahoo.com', NULL, 0, 'None'),
(237, 'PLEASE SET', NULL, 0, 'addr@yahoo.com', NULL, 0, 'gomez');

但我原以为带有 history = 'None' 的不会被包括在内。我做错了什么?

最佳答案

() 中组织您的 OR 条件

SELECT *
FROM mytable
WHERE (all_emails LIKE '%addr@yahoo.com%'
OR all_phones LIKE '%addr@yahoo.com%')
AND history !='None

Sample Demo

关于Mysql 不等于运算符失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910703/

相关文章:

mysql - 通过将 2 个表与 POST 变量进行比较来显示可用时间

sql - 使用 T-SQL 查找特定年份任何 ISO 周内的订单

mysql - 无法使用MySQL设置Ambari服务器

mysql - 无法使用 load data infile 识别错误原因

php - 在 MySQL 和 PHP 中使用聚合字符串函数

sql - 分组依据和内连接 : how to select joined without a "max" trick

mysql - 带有 mysql 池的 Node.js http 在出错时意外退出

mysql - 如何在 MySQL 中将 SELECT ON 表名授予 PUBLIC

php - 单纯用户的登录控制和管理面板加密

php - 多个MySQL记录具有相同的名称,不同的id