2010-08-21 28 views

回答

3

使用取4行:

SELECT a.id, 
      a.region 
     FROM ads a  
RIGHT JOIN (SELECT t.*, 
        CASE 
         WHEN @region = t.region THEN @rownum := @rownum + 1 
         ELSE @rownum := 1 
        END as rank, 
        @region := t.region 
       FROM ADS t 
       JOIN (SELECT @rownum := 0, @region := 1) r 
      ORDER BY t.region) b ON b.id = a.id 
           AND b.region = a.region 
           AND b.rank <= 4 
+0

在字段列表欄「身份證」不明確 – Somebody 2010-08-21 15:33:21

+0

@Beck:我更新它使用'了',但你」沒有給出你想要的任何跡象。必要時將引用更改爲「b」。 – 2010-08-21 15:37:27