Sql 选择最后一行,但仅当列值为预期值时
我的桌子Sql 选择最后一行,但仅当列值为预期值时,sql,Sql,我的桌子 --------------------- id | userid | name --------------------- 0 1 John 1 2 Ellen 2 1 Peter --------------------- 此表显示,John已将其姓名更改为Peter(相同的userid-相同的人),因为id=2比id=0 现在。。。我可能想检查John是否是userid=1的姓。我需要选择最后一行的id,其中useri
---------------------
id | userid | name
---------------------
0 1 John
1 2 Ellen
2 1 Peter
---------------------
此表显示,John
已将其姓名更改为Peter
(相同的userid
-相同的人),因为id
=2比id=0
现在。。。我可能想检查John
是否是userid
=1的姓。我需要选择最后一行的id
,其中userid
=1,但前提是name
=John
。由于在这种特殊情况下,userid
=1的最后一行中的name
不是John
,因此应该返回NULL。我该怎么做?使用单个SQL命令。谢谢
顺便说一句,我正在使用Sqlite3,一些高级MySQL的东西在我的情况下可能不起作用好吧,一种方法是使用
orderby
并将结果限制在一行:
select (case when name = 'John' then name end)
from t
where userid = 1
order by id desc
fetch first 1 row only;
这使用了
fetchfirst
子句,因为它是标准SQL。您的数据库可能有另一种方法。这回答了问题,非常感谢!