sql - 如何查找具有 8 但仍然没有 9 的列状态值
问题描述
我正在处理项目,我需要在表中找到名为状态的一列(此列的值从 1-12 之间),我想找到低于条件的所有值(如果状态有 8 但仍然没有 9) , 了解更多信息 :
原表:
File_name id status Execution_number
Live_package1.zip 333 3 4444443434343
Live_package2.zip 444 7 8888888886767
Live_package1.zip 333 8 4444443434343
Live_package2.zip 444 8 8888888886767
Live_package2.zip 444 10 8888888886767
Live_package3.zip 666 8 9999999999999
Live_package4.zip 111 9 3333333333333
想要的结果
File_name id status Execution_number
Live_package1.zip 333 8 4444443434343
Live_package3.zip 666 8 9999999999999
我正在使用以下代码,但我没有收到预期的结果:
SELECT *
FROM tbl_doc_state
WHERE status =8
AND NOT(status !=9);
解决方案
如果要排除状态为 8 但其他行具有相同 id 但状态为 9 的行,请使用not
存在条件:
SELECT t1.*
FROM tbl_doc_state t1
WHERE status = 8
and not exists (select *
from tbl_doc_state t2
where t2.id = t1.id
and t2.status >= 9);
推荐阅读
- android - 无法在 Firebase 上为特定用户增加孩子的价值
- php - 如何从 php 中的 youtube id 创建 mysql 表?
- javascript - 在 Component 内部做出反应,为什么我们需要使用“this”。引用一个函数
- regex - 可能包含其他刹车的刹车之间的匹配
- laravel-5 - 在部分页面上显示 SQL 请求而不是视图 Laravel 5.5
- css - :target 伪元素内的动画仅在第一次单击时触发
- angular - 角度“选择”输入,在选择的选项上更改变量
- android - 如何正确自定义 SwitchPreferenceCompat 使其表现得像 Wi-Fi 设置首选项
- shell - 文件到文件夹 .bat 到 .sh
- c# - C#,如何手动设置光标位置