Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak znaleźć numery seryjne bez przerw w mysql?

Miałem więcej zabawy:-

SELECT MIN(aFirstSerial), MAX(aLastSerial)
FROM
(
    SELECT @FirstSerial:=IF(productSerialnumber = @LastSerial + 1, IF(@FirstSerial = 0, productSerialnumber, @FirstSerial), productSerialnumber) AS aFirstSerial, 
        @RangeNum:=IF(productSerialnumber = @LastSerial + 1, @RangeNum, @RangeNum + 1) AS aRangeNum, 
        @LastSerial := productSerialnumber AS aLastSerial
    FROM
    (
        SELECT productSerialnumber
        FROM Product
        ORDER BY productSerialnumber
    ) Sub1
    CROSS JOIN (SELECT @PrevSerial:=0, @RangeNum:=0, @FirstSerial:=0, @LastSerial:=0) Sub2
) Sub3
GROUP BY aRangeNum

SQL Fiddle za to tutaj:-

http://sqlfiddle.com/#!2/5cbc2/12



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać migrację, aby zmienić klucz podstawowy modelu za pomocą ManyToManyField

  2. Nie można znaleźć wpisu type=wartość obrazu w $_POST

  3. Zapytanie SQL — Ograniczanie wyników zapytań

  4. Kompilowanie łącznika MySQL z Visual Studio 2015 Win64

  5. Mysql select z klauzulą ​​in nie używa indeksu