使用:
SELECT t.id,
t.variety,
(SELECT COUNT(*) FROM TABLE WHERE id < t.id) +1 AS NUM
FROM TABLE t
num値のクエリは、返されるすべての行に対して実行されるため、これを行うのは理想的な方法ではありません。 NUMBERS
を作成することをお勧めします テーブル。1から始まり、途方もなく大きな数に増加する数を含む単一の列があり、NUMBERS
を結合して参照します。 次の変数の例と同様の方法でテーブルを作成します。
MySQLランキング、またはその欠如
MySQLにはランキング関数がないため、疑似行番号機能を取得するために変数を定義できます。
SELECT t.id,
t.variety,
@rownum := @rownum + 1 AS num
FROM TABLE t,
(SELECT @rownum := 0) r
-
SELECT @rownum := 0
変数を定義し、それをゼロに設定します。 -
r
はサブクエリ/テーブルエイリアスです。サブクエリのエイリアスを定義しないと、使用しなくてもMySQLでエラーが発生するためです。
MySQLビューで変数を使用できません
これを行うと、1351エラーが発生します。これは、設計上、ビューで変数を使用することはできません 。 バグ/機能の動作はここに記載されています 。