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

各IDによるランキングを埋め戻すためのMYSQL更新ステートメント

    それは最も美しい方法ではないかもしれませんが、次のようなことを簡単に行うことができます:

    set @rank = 0;
    set @prev = 0;
    
    select id, score, IF (id = @prev, @rank := @rank + 1, @rank := 1), @prev := id
    from scores
    order by id, score;
    

    更新ステートメントも必要だと思います。それは次のようになります。

    set @rank = 0;
    set @prev = 0;
    
    update scores
    set rank = IF(id = @prev, @rank := @rank + 1, @rank := 1),
    id = (@prev := id)
    order by id, score;
    



    1. SQL Serverエージェントジョブの変更(T-SQL)

    2. OracleのRcbind()関数に相当しますか?

    3. すべてのアクティブなセッションに対して準備されたすべてのステートメントを一覧表示するにはどうすればよいですか?

    4. オブジェクトのプロパティによってjsonまたはjsonb値内の配列内のオブジェクトを並べ替える方法は?