Php 如何使用ORDER BY选择多行

Php 如何使用ORDER BY选择多行,php,mysql,sql,greatest-n-per-group,Php,Mysql,Sql,Greatest N Per Group,我想选择多个按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; 这

我想选择多个按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;

这并不是我所需要的结果

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

如果设置为自动增量列,则可以使用子查询,通过最大ID分别获取每个地区的最新记录。为了从选定的最新行中获取所有行,您需要将其与原始表联接,前提是它与地区和ID匹配


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

如果设置为自动增量列,则可以使用子查询,通过最大ID分别获取每个地区的最新记录。为了从选定的最新行中获取所有行,您需要将其与原始表联接,前提是它与地区和ID匹配


如果他希望每个“安帕拉”、“坎迪”、“阿努拉达普拉”@Akam最后一行,查询将根据ID为您提供每个地区的最新一行。谢谢您的回答。。那对我来说是最合适的。但是在你的查询中应该有一个区。它错过了alias@Chaturanga是的,你是对的,所以它不会抛出模棱两可的列错误。如果他希望每个“安帕拉”、“坎迪”、“阿努拉达普拉”@Akam最后一行,查询将根据ID为你提供每个地区的最新一行。谢谢你的回答。。那对我来说是最合适的。但是在你的查询中应该有一个区。它错过了alias@Chaturanga是的,您是对的,所以它不会抛出不明确的列错误。
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')