1

我想选择按 desc 排序的多行。例如,我想为 Kandy、Ampara 和 Anuradhapura 选择最后添加的行。请从下面的链接查看我的数据库的屏幕截图。

一个

我试过了:

SELECT thripstot, g_midgetot, l_foldertot 
FROM pest_data 
WHERE district = 'ampara' OR district = 'kandy' OR district = 'anuradhapura' 
order by id desc 
limit 0,1;

这并没有提供我需要的结果。

4

1 回答 1

5

如果我没有正确理解您,您希望获取子句中district定义的每个指定的最新记录。where

如果将其设置为Auto_increment列,则可以使用子查询district通过最大值分别获取每个记录的最新记录。为了从选定的最新行中获取所有行,您需要将其与原始表连接起来,前提是它与和匹配。IDdistrictID

SELECT  a.thripstot, a.g_midgetot, a.l_foldertot 
FROM    tableName a
        INNER JOIN
        (
            SELECT  district, MAX(id) max_id
            FROM    tableName
            GROUP   BY district
        ) b ON  a.district = b.district AND
                a.id = b.max_id
WHERE   a.district IN ('ampara','kandy', 'anuradhapura')
于 2013-03-24T08:34:53.063 回答