根据字段从mysql中选择最后两个插入的行

时间:2015-01-28 22:26:42

标签: mysql

我有以下查询:

SELECT DISTINCT field1, field2 FROM table1 WHERE something = 'x' ORDER BY time_of_insertion DESC LIMIT 2

我想要的是获取表格的最后两个插入行,一个具有某个field1(例如'1')而另一个具有另一个field1(例如'2')。所以,它不是真正的最后两行,我想要的是来自某个某个field1的最后一行和来自不同field1的最后一行。当我尝试查询时,DISTINCT未得到尊重。关于为什么以及如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

我认为UNION会做你想要的。使用您的确切条件选择一行,然后将其结果集与另一个选择了您想要的另一行的SELECT语句的结果组合。

当你的榜样相当普遍时,很难具体而明确,但有些事情就是这样:

SELECT field1, field2 FROM table1 WHERE something = 'x' ORDER BY time_of_insertion DESC LIMIT 1
UNION
SELECT field1, field2 FROM table1 WHERE something = 'y' ORDER BY time_of_insertion DESC LIMIT 1;

注意它的一个陈述:只有第二个SELECT有一个分号终止它。