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

MySQLを使用して、テーブルのレコードインデックスを含む列を生成するにはどうすればよいですか?

    次のことを試してみてください:

    SELECT  l.position, 
            l.username, 
            l.score,
            @curRow := @curRow + 1 AS row_number
    FROM    league_girl l
    JOIN    (SELECT @curRow := 0) r;
    

    JOIN (SELECT @curRow := 0) 一部では、個別のSETを必要とせずに変数の初期化が可能です。 コマンド。

    テストケース:

    CREATE TABLE league_girl (position int, username varchar(10), score int);
    INSERT INTO league_girl VALUES (1, 'a', 10);
    INSERT INTO league_girl VALUES (2, 'b', 25);
    INSERT INTO league_girl VALUES (3, 'c', 75);
    INSERT INTO league_girl VALUES (4, 'd', 25);
    INSERT INTO league_girl VALUES (5, 'e', 55);
    INSERT INTO league_girl VALUES (6, 'f', 80);
    INSERT INTO league_girl VALUES (7, 'g', 15);
    

    テストクエリ:

    SELECT  l.position, 
            l.username, 
            l.score,
            @curRow := @curRow + 1 AS row_number
    FROM    league_girl l
    JOIN    (SELECT @curRow := 0) r
    WHERE   l.score > 50;
    

    結果:

    +----------+----------+-------+------------+
    | position | username | score | row_number |
    +----------+----------+-------+------------+
    |        3 | c        |    75 |          1 |
    |        5 | e        |    55 |          2 |
    |        6 | f        |    80 |          3 |
    +----------+----------+-------+------------+
    3 rows in set (0.00 sec)
    


    1. 進化する連絡先情報はデータベースを変更することを意味しますか?

    2. PostgreSQLでデータベースとテーブルを一覧表示する方法

    3. T-SQLで日付をフォーマットする方法

    4. SQL Serverで日付を切り捨てる最良の方法は何ですか?