2016-03-22 75 views
0

我嘗試使用174行的表獲取所有年份。在2016和2017年有兩個不同年份。並添加到查詢的響應和Id中,這些響應和響應在「行數」處對應。如何在選擇查詢中獲取行號mysql

下面是該查詢:

SET @n=0; 
SELECT YEAR (`Date`) AS Libelle, @n := @n + 1 AS id FROM Datas GROUP by Libelle 

的迴應是:

|Libelle| Id| 
| 2016| 1| 
| 2017|174| 

什麼是獲得方式:

|Libelle| Id| 
| 2016| 1| 
| 2017| 2| 

174對應於我的表中的最後一個記錄。我知道@n與所有其他行一起遞增。

你有想法做到這一點嗎?

回答

1

試試這個。所以計數器只適用於結果:

SELECT @n := @n + 1 AS id , tmp.* 
FROM (
    SELECT DISTINCT YEAR (`Date`) AS Libelle FROM Datas GROUP by Libelle) AS tmp, 
    (SELECT @n := 0) as parameter; 
+0

它說,有在最後一行的錯誤「(@n:= 0)作爲參數」 – Julien698

+0

對不起,我有我的回答 –

+0

糾正它,它完美的作品! !謝謝 – Julien698

0

也許這樣的事情?

SELECT 
    t1.Libelle, 
    @n := @n + 1 AS id 
FROM (
    SELECT DISTINCT YEAR(`Date`) AS Libelle 
    FROM Datas 
    GROUP BY Libelle 
) t1, 
(
    SELECT @n := 0 
) t2; 

相關:https://stackoverflow.com/a/4474389/4152813