如何在sql中包含位置之后获取所有值

时间:2018-12-04 08:42:06

标签: mysql

我在执行此任务的SQL查询中陷入困境

如果我在包含值2之后获取所有字段,而在值2之前忽略

例如这样的

id profile_id status
1  1          3
2  1          3
3  1          2
4  1          1
5  1          1

以及当我尝试这样的结果时,显示所有不包含2的值

SELECT * FROM `users` WHERE `status` <> 2 

id profile_id status
1  1          3
2  1          3
4  1          1
5  1          1

我尝试这样的代码子查询

SELECT * 
FROM   `users` 
WHERE  `users`.status != (
SELECT us.status 
              FROM   `users` us
              WHERE  us.status = 2 LIMIT 1)

结果显示如下

id profile_id status
1  1          3
2  1          3
4  1          1
5  1          1

我应该期望结果是这样,仅在status = 2之后显示所有字段

id profile_id status
4  1          1
5  1          1

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

请尝试以下查询:

SELECT * 
FROM   `users` 
WHERE   id > (
                SELECT id 
                FROM   `users`
                WHERE  status = 2
              )