Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql wählt die Ordnungszahl aus

Mithilfe von Variablen und Bedingungen können Sie den Zähler basierend auf einer Bedingung zurücksetzen (Bibliotheks-ID hat sich geändert). Obligatorisch für die Bestellung nach der Spalte 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;

Die zweite if-Anweisung wird verwendet, um zwei Zuweisungen zusammenzufassen und @var_record.

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