在特定列值之后显示记录

问题描述

考虑我有一个表TBL_AUD,它有一个列UTYPE。UTYPE可以有值提交,拒绝和批准。 我想显示在UTYPE = approve之后输入的记录。意思是当UTYPE列在任何行都“批准”时,我想在该行之后显示记录。 请帮助我无法弥补查询,我不是非常擅长sql

ID | UTYPE

  • 1 |提交
  • 2 |拒绝
  • 3 |批准
  • 4 |提交
  • 5 |拒绝

像上面的示例一样,我希望批准后的所有行

解决方法

首先,您需要找到记录的ID,之后才能显示所有记录。这是一个简单的查询:

SELECT ID 
FROM TBL_AUD 
WHERE UTYPE = 'approve' 
ORDER BY ID
LIMIT 1;

之后,您可以将此查询用作子查询来查找记录。让我们调用SubQuery上方的查询。搜索查询将变为:

SELECT *
FROM TBL_AUD 
WHERE ID > (SubQuery);

或者,完全写出来:

SELECT *
FROM TBL_AUD 
WHERE ID > (SELECT ID 
            FROM TBL_AUD 
            WHERE UTYPE = 'approve' 
            ORDER BY ID
            LIMIT 1);

您可能需要添加一些额外条件,以使其完全满足您的要求,但是您的问题并不包含详细信息,因此我无法添加这些条件。