如何使用ORDER BY选择多行

时间:2013-03-24 08:31:51

标签: php mysql sql greatest-n-per-group

我想选择desc排序的多行。例如,我想为Kandy,Ampara& amp; Anuradhapura ..请从下面的链接查看我的数据库的屏幕截图。

a

我试过了:

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;

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

1 个答案:

答案 0 :(得分:5)

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

如果将{em> Auto_increment 列设置为 Auto_increment 列,则可以使用子查询分别获取每个district的最新记录ID。为了获取所选最新行中的所有行,您需要将其与原始表连接,前提是它与districtID匹配。

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')