我在MySQL数据库中有一个关系,如下所示
| id | name | category |
其中类别将具有值X,Y或Z。
id 设置为 AUTO_INCREMENT ,这样每当我插入一行时,它都会相应增加
这里的主要动机是创建一个查询,该查询可能会返回特定类别中MAXIMUM id 的条目,例如Y.
例如,如果表格中有以下条目:
-------------------------------------------------
| id | name | category |
-------------------------------------------------
| 1 | abc | X |
| 2 | cde | X |
| 3 | efg | Y |
| 4 | ghi | X |
| 5 | ijk | Z |
-------------------------------------------------
现在查询必须返回具有最高 id 和category = X的条目(即id = 4的条目)。
P.S。:该查询也适用于PHP脚本。
答案 0 :(得分:2)
可能这很有用
select * from my_table where id in(
select max(id)
from my_table
group by category);
答案 1 :(得分:0)
我不确定你的意思"必须退回条目......"但是如果你只是想知道你所指定的每个类别的最高ID(sorta),那么这样的东西应该适用于这样一个简单的表:
select Category, max(ID) ID from #TTable
group by Category
并返回如下内容:
Category ID
X 4
Y 3
Z 5
但是如果你需要知道这个名字(我想你可能会这么做)那么这对你来说并没有多大帮助,但@ ScaisEdge的查询工作正常。取决于你的需要。对于PHP脚本问题不能说太多,也不能在MYSQL和im使用SQL Server中工作