sql >> データベース >  >> RDS >> Mysql

MySQLビューの行ランク

    使用:

    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エラーが発生します。これは、設計上、ビューで変数を使用することはできませんバグ/機能の動作はここに記載されています



    1. whileループによって生成されたxmlを変数に割り当てる

    2. SQLServerで月曜日を週の最初の曜日として設定する方法

    3. EBSR12コンポーネントのバージョンを見つける方法

    4. SQL結合の究極のガイド:内部結合–パート1