2012-11-25 9 views
12

は、私はこのようなSQLクエリをしましたと仮定しますSQL SELECTクエリに列としてROW INDEXを追加する方法?

SELECT id, name, index(not a real column) FROM users ORDER BY rating DESC 

私はレコードのインデックスを表します選択した列に列を追加します。

例:私は取得したいこのテーブルの

id name rating 
1  a  4 
2  b  2 
3  c  8 
4  d  5 

id name rating index 
3  c  8  1 
4  d  5  2 
1  a  4  3 
2  b  2  4 
+0

結果テーブル内の行番号が必要ですか? –

+0

あなたの要件を簡単に説明している文章に何かがありますか? "選択した列に列を追加する..." NVM私はあなたが意味するものを得ました。結果のテーブルの行インデックス番号が必要です。 – bonCodigo

+0

レコードのインデックスは何ですか? – sashkello

答えて

14

以下を試してくださいrow_index:

set @row_num = 0; 
SELECT id,name,rating, @row_num := @row_num + 1 as row_index FROM users 
ORDER BY rating desc; 
+0

それは働いていましたが、そのためのエレガントな解決策はないようです。 –

+0

あなたはヤリンを探していますか? :)私はまた、あなたが "このテキストエリアの文字の最小値"の意味を疑問に思っています... – bonCodigo

+0

私はINDEX()関数のようなものを探していました。 '最小限のもの'に関しては、コメントを追加するときにtextareaのStackoverflow検証に関連しています:P –

1

何かset @cnt=0; select *, @cnt:[email protected]+1 from users order by rating desc;

のような仕事を行う必要がありますが(あなたが前に@cnt設定する必要があります各クエリ)

関連する問題