mysql - 无法使用 AND 条件获得结果
问题描述
当我执行以下查询时,我没有得到任何结果:
SELECT * FROM contacts_cstm WHERE id = '123' AND ftrere!='test'
当我运行以下查询时,它会返回结果:
SELECT * FROM contacts_cstm WHERE ( id = '123')
以下是表定义以及示例插入语句:
CREATE TABLE IF NOT EXISTS `contacts_cstm` (
`id` char(36) NOT NULL,
`ftrere` varchar(100) DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `contacts_cstm` (`id`, `ftrere`) VALUES
('123', NULL);
我不确定我错过了什么。任何帮助将不胜感激!
解决方案
NULL
失败<>
就像失败一样=
。使用 null 安全比较:
SELECT *
FROM contacts_cstm
WHERE id = 123 AND NOT (ftrere <=> 'test')
请注意,这<=>
是 MySQL 定制的 NULL 安全比较运算符。这相当于标准的 SQL 运算符IS NOT DISTINCT FROM
。
或者明确NULL
比较:
SELECT *
FROM contacts_cstm
WHERE id = 123 AND (ftrere <> 'test' OR ftrere IS NULL);
注意: id
看起来像一个数字,所以我删除了单引号进行比较。
推荐阅读
- python - 如何根据嵌套字典中的子值计算父字典值
- python - Matplotlib 绘制不同颜色的多边形
- c# - 自动映射器根据枚举值映射某些布尔属性
- javascript - 如何将href链接限制为
标签 - android - How to create POJO class for retrofit with dynamic keys names
- python - Python inheritance pattern - how to handle deserialization
- angular - 未能加载资源服务器响应状态为 404(未找到)角度 5
- azure - 如何从 Azure B2C Owin 登录跳转到 AD 图形 API
- javascript - 显示并点击 javascript 和 html
- rest - 使用jira rest api获取一段时间内的jira工作日志