sql >> Databasteknik >  >> RDS >> Mysql

Mysql välj ordinarie

Med hjälp av variabler och villkor kan du återställa räknaren baserat på ett villkor (libraryId har ändrats). Obligatorisk att beställa efter kolumnen 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;

Den andra if-satsen används för att gruppera två tilldelningar tillsammans och returnera @var_record.

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


  1. Hitta poster där join inte finns

  2. Hur man delar upp en enda rad i flera kolumner i mysql

  3. MySql Single Table, Välj de senaste 7 dagarna och inkludera tomma rader

  4. XML som parameter i lagrad procedur (sql-server)