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

Mysql selectordinal

    変数と条件を使用すると、条件に基づいてカウンターをリセットできます(libraryIdが変更されました)。列libraryIdで注文する必要があります。

    SELECT books.*, 
        if( @libId = libraryId, 
            @var_record := @var_record + 1, 
            if(@var_record := 1 and @libId := libraryId, @var_record, @var_record)
        ) AS Ordinal 
    FROM books
    JOIN (SELECT @var_record := 0, @libId := 0) tmp
    ORDER BY libraryId;
    

    2番目のifステートメントは、2つの割り当てをグループ化し、@var_recordを返すために使用されます。

    if(@var_record := 1 and @libId := libraryId, @var_record, @var_record)
    


    1. ソート列と別の列の値に基づいてテーブルを並べ替えます

    2. ダイナミッククリスタルサブレポート

    3. 私のサイトでグローバル検索を作成する方法

    4. Oracle / Sybase SQL-以前のレコード(単純なLAGではない)に基づいて値を取得します