假设我有一个看起来像这样的SQLite 3数据库:
ID COMMAND MESSAGE
------------------------------------------
1 start abc
2 foo xyz
3 bar 123
4 start Hello
5 xxx World
6 yyy !
我只想选择最后一个start
命令(即
4 start Hello
5 xxx World
6 yyy !
这是否可以与纯SQLite一起使用,还是应该在应用程序代码(PHP)中进行?
答案 0 :(得分:3)
您可以使用子查询来获取id
作为最后一次启动,然后使用它进行过滤:
select t.*
from t
where t.id >= (select max(t2.id) from t t2 where t2.command = 'start');
答案 1 :(得分:0)
Badcash:
我会建议准确 Gordon Linoff的建议。
执行此操作的一个好方法是利用子查询。假设您提供的示例中数据库的结构保持不变,并且ID依次递增,则可以找到最后一个START命令的ID(使用子查询),然后使用该子查询在主查询中进行过滤。您可能会考虑这样的事情:
SELECT
myTable.ID
myTable.COMMAND,
myTable.MESSAGE
FROM
myTable
WHERE
myTable.ID >= ( SELECT MAX(myNewTable.ID) from myTable myNewTable WHERE myNewTable.COMMAND = 'start');