2011-05-19 268 views
11

序列號,我有一些簡單的查詢:如何顯示在MySQL查詢結果

SELECT foo, bar FROM table 

我想你現在什麼結果的樣子。

我想要做的是根據查詢結果中顯示的數據顯示一些連續的數字。它就像AUTO_INCREMENT(它並不意味着我想顯示ID)。 我想要的結果是這樣的:

|No| foo | bar | 
------------------------- 
|1 | bla | 123 | 
|2 | boo | abc | 
|3 | wow | xxx | 

我應該怎麼做,使之?

在此先感謝

回答

19
select @rownum:[email protected]+1 No, foo, bar from table, (SELECT @rownum:=0) r; 
+0

它不像mysql查詢,是嗎? – nunu 2011-05-19 08:32:52

+0

@nunu:這在mysql中有效。 +1 – 2011-05-19 08:33:38

+0

@nunu其mysql,相信我。我已經嘗試過了,並且工作正常:) – bungdito 2011-05-19 08:34:09

3

的順序,如果你在你的查詢中使用GROUP BY條款被打亂。解決方法是將您的查詢放入FROM這樣的子句中。

SET @a:=0; 
SELECT @a:[email protected]+1 No, output.* 
FROM (
    SELECT foo, bar 
    FROM table GROUP BY foo, bar 
) output; 
1

無論問題的答案爲我工作,但基於bungditosource,我意識到你可以做一些簡單:

SET @a:=0; 
SELECT @a:[email protected]+1 No, foo, bar 
FROM table; 

所以,首先要確保SET @a:=0;運行。這將設置你的變量,a。然後你可以在@a:[email protected]+1的結果中增加它。我用GROUP BY,ORDER BY,甚至JOINS測試了它,它按預期工作。