从mysql表中获取最后插入的数据,按类别进行过滤

从mysql表中获取最后插入的数据,按类别进行过滤,mysql,sql,Mysql,Sql,我的数据库中有一个表,它有4列 ID CATEGORY NAME DATA 我如何检索由类别过滤的数据的最后一个插入值 select * from your_table where ID = Max(ID) 不清楚您是想要给定类别的最后一个值,还是按类别,因此以下是两种解决方案: 对于给定类别: select data from mytable where category = ? order by id desc limit 1; 对于所有类别: select category, da

我的数据库中有一个表,它有4列

ID
CATEGORY
NAME
DATA
我如何检索由
类别过滤的
数据的最后一个插入值

 select * from your_table where ID = Max(ID)

不清楚您是想要给定类别的最后一个值,还是按类别,因此以下是两种解决方案:

对于给定类别:

select data from mytable
where category = ?
order by id desc
limit 1;
对于所有类别:

select category, data
from (select * from mytable 
    order by id desc) x
group by category;

请注意,第二个查询是一个仅限mysql的解决方案,但由于这是一个mysql问题,因此这将起作用。

假设id是一个自动递增的id,则需要类似以下内容:

Select data from mytable
Where category = :mycategory
Order by id desc
Limit 1

id是否自动递增?你想让他在插入后立即插入还是稍后再插入?这根本不是回答问题;在这个查询中没有提到类别第一个在oracle中也不起作用,但这是一个MySQLquestion@PeterWooster嗯,限制行的语法可能会有所不同,但原则会起作用。第二个查询将在我所知道的所有数据库中爆炸,除了mysql。是的,但在Oracle中使用Rownum的限制并不明显,只有那些已经使用过Rownum的数据库除外。@Bohemian+1顺便说一句,我注意到你在冬季Bash=)中获得了冠军。祝贺你。@bonCodigo谢谢!据我所知,除了一顶:武士道(和亡灵巫师一样),我得到了每一顶帽子。但是我很接近。。。就一个答案只需要再投两票。哦,好吧,nm