sql - SQL 'WHERE NOT some condition' 不排除条件
问题描述
WHERE NOT some condition
不从我的查询中排除该条件。
代码:
SELECT
n.timestamp AS tm
FROM
(SELECT timestamp, uid
FROM nodes
UNION ALL
SELECT timestamp, uid FROM ways) n
WHERE
NOT n.uid = '12055' OR NOT n.uid = '2132512';
目前,此查询返回 3579897 行。
参考:
数据集中的所有时间戳:
SELECT n.timestamp as tm
FROM (SELECT timestamp FROM nodes UNION ALL SELECT timestamp FROM ways) n;
返回 3579897 行。
条件的时间戳:
SELECT n.timestamp as tm
FROM (SELECT timestamp, uid FROM nodes UNION ALL SELECT timestamp, uid FROM ways) n
WHERE n.uid='12055' OR n.uid='2132512'
返回 2254097 行。
解决方案
我想你想要:
WHERE NOT n.uid = '12055' AND NOT n.uid = '2132512';
您的版本将返回所有行 - 一个或其他条件将(几乎)始终为真。好的,它会过滤NULL
掉n.uid
.
或者更雄辩地说:
WHERE n.uid NOT IN ('12055', '2132512');
如果uid
是一个数字(我期望),那么你应该去掉单引号:
WHERE n.uid NOT IN (12055, 2132512);
推荐阅读
- java - 为什么这段代码中有 3 个构造函数?
- php - 使用 PHP 的 Azure 事件中心
- javascript - Javascript:获取部分中所有元素的 ID
- php - 用于检查是否应执行类的 PHP 设计模式
- python - 无法使用max函数从python(runestone)中的dict获取具有最大值或最小值的键
- android - 如何在android中将应用程序音频文件与whatsapp音频文件分开
- ubuntu - openvpn - 验证/解密数据包错误:数据包 HMAC 验证失败
- javascript - JQuery 文件输入 - 读取图像宽度和高度
- sql - SQL Server CHARINDEX 函数
- android-studio - Android Studio 调试器在到达断点后崩溃