首页 > 解决方案 > 如何在包含在sql中的位置之后获取所有值

问题描述

我被困在这个任务的 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

谢谢你的帮助

标签: mysql

解决方案


试试下面的查询:

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

推荐阅读