mysql-在满足给定条件后,是否有方法丢弃排序select中的记录?

yr9zkbsy  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(319)

这个问题在这里已经有了答案

选择行直到满足条件(1个答案)
两年前关门了。
我正在处理这样一个排序数据集:

ID    Test
----------
1      Y
2      Y
3      Y
4      N
5      Y
6      N
7      N
8      Y

我要抓取所有的行 Test = Y 有一个 ID 小于第一次出现的 ID 系在一审的那一排 Test = N .
所以我想要一个刚刚返回的查询:

ID    Test
----------
1      Y
2      Y
3      Y

我知道我可以分层子选择,我可能不得不这样做,但我只是好奇是否有任何更聪明的方法来实现这一点在MySQL5.7+。

7eumitmz

7eumitmz1#

尝试此查询

SELECT * 
FROM YourTable
WHERE 
    CASE 
       WHEN EXISTS (SELECT id FROM YourTable WHERE Test = 'N')
         THEN (id < (SELECT MIN(id) FROM YourTable WHERE Test = 'N') AND Test = 'Y')
         ELSE Test = 'Y'
       END;

相关问题