【发布时间】:2009-08-09 08:12:07
【问题描述】:
我有一张桌子
'id' 作为主要字段并设置为自动递增..
'name' 类型为 varchar ..
'category' 类型为 varchar ..
表格内容 ::.
* id=1,name=abc,category=tv
* id=2,name=abc,category=radio
* id=3,name=abc,category=tv
* id=4,name=abc,category=radio
* id=5,name=abc,category=tv
* id=6,name=abc,category=tv
现在,我想选择 category="tv" 的最新行,即仅第 5 行、第 6 行
这只是一个示例,实际表格可能有很多类别,我希望我在提出问题的方式上很清楚......
请帮忙....
根据给出的答案...这个查询显示了我想要的结果 ::.
SELECT * FROM test WHERE id > (SELECT id FROM test WHERE category !="tv" ORDER BY id DESC LIMIT 1)
但是当我在表中再添加 1 行时,查询没有显示任何结果,我可以理解为什么..
$$$$我想要特定类别的最后一个块 $$ $$
【问题讨论】:
-
如果您添加一个不是“tv”的新行,它应该什么都不返回。这就是逻辑。
-
很抱歉,我无法在第一次正确解释它。可能有许多特定类别的块,我想要最后一个块,即如果
* id=1, name=abc,category=tv
* id=2,name=abc,category=radio
* id=3,name=abc,category=tv
* id=4,name=abc,category =radio
* id=5,name=abc,category=tv
* id=6,name=abc,category=tv
* id=7,name=abc,category=radio
只有当我请求 category='tv' 时,我才想要第 5 行和第 6 行