SQL Query用于查找特定类别的条目

时间:2016-01-28 18:52:29

标签: php mysql sql

我在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脚本。

2 个答案:

答案 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中工作