MySQL选择具有匹配值的第一行后的所有行

时间:2016-11-03 03:02:29

标签: mysql

有没有办法在第一行之后选择具有匹配值的所有行?

我试过了:
SELECT * FROM表WHERE Ate = False ORDER BY Ate ASC LIMIT 1
SELECT * FROM Table WHERE Id> = 1stqueryid,Fruit = Blueberry

例如,我有一个包含水果列的表和一个表示它们是否已经吃过的布尔值。

ID:水果--------------吃了 的 1 --- ------蓝莓真
2 ---橙----------真
第3 --- ------蓝莓假
4 ---桃------------真
5 ---蓝莓-----真实
6 --- ------蓝莓假
7 ---蓝莓------真的

我想找到第一排有#34; Ate" ="错误"和"水果" ="蓝莓"。然后,选择具有" Blueberry"的剩余行 结果应该是:

ID ---水果---------------吃
3 ---蓝莓--------假
5 ---蓝莓--------真
6 ---蓝莓--------假
7 ---蓝莓--------真的

有没有办法整合两个查询?

2 个答案:

答案 0 :(得分:1)

你可以使用子查询来获得符合

条件的第一个id
id >= (SELECT id 
              FROM   Table 
              WHERE  fruit = 'Blueberry' 
                     AND ate = false 
              LIMIT  1) 

子查询看起来像这样

fruit = 'Blueberry' AND ate = false 

此子查询返回符合条件的行的第一个id

SELECT * 
FROM   Table 
WHERE  id >= (SELECT id 
              FROM   Table 
              WHERE  fruit = 'Blueberry' 
                     AND ate = false 
              LIMIT  1) 
       AND fruit = 'Blueberry' 

最终查询看起来像这样

background-size

See Screen Shot

答案 1 :(得分:1)

SELECT * FROM Table WHERE Fruit='Blueberry' ORDER BY Ate ASC 

此查询应符合您的要求。