问题描述
考虑我有一个表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);
您可能需要添加一些额外条件,以使其完全满足您的要求,但是您的问题并不包含详细信息,因此我无法添加这些条件。