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

列内で最長の実行を見つけるためのmysqlクエリ

    SELECT winner, MAX(winningStreak) FROM (
    SELECT
    winner,
    IF([email protected], @rownum:[email protected]+1, @rownum:=1) AS winningStreak,
    @prev:=winner
    FROM
    yourTable
    , (SELECT @prev:=NULL, @rownum:=1) vars
    /*ORDER BY whateverDeterminesTheOrderOfTheWinners*/
    )sq
    GROUP BY winner
    ORDER BY winningStreak DESC
    

    あなたがそれらをリストしたように勝者の順序を決定し、クエリのコメントされた部分を調整する別の列が必要です。それとは別に、このクエリは機能しますが、PHPで行う方が本当に簡単です。

    こちら でライブをご覧ください 。



    1. Mysqlデータベースの最適化

    2. LOADDATAINFILEが機能しない

    3. Javaでのutf8の問題

    4. MySQLに書き込むときにTextAreaからの改行を保持する