sql >> Database >  >> RDS >> Mysql

Hoe serienummers vinden zonder gat in mysql?

Had meer een toneelstuk:-

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 ervoor hier:-

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



  1. Haal het aantal cijfers achter de komma van een float (met of zonder decimale deel)

  2. GROUP BY en ORDER BY samen gebruiken in LARAVEL 5.6

  3. Door MySQLi opgestelde overzichten en transacties

  4. Is er iets mis met joins die het JOIN-sleutelwoord in SQL of MySQL niet gebruiken?