sql >> Database >  >> RDS >> Mysql

mysql vind kleinste + unieke id beschikbaar

U kunt de minimaal beschikbare ID verkrijgen met deze zoekopdracht:

SELECT MIN(t1.ID + 1) AS nextID
FROM tablename t1
   LEFT JOIN tablename t2
       ON t1.ID + 1 = t2.ID
WHERE t2.ID IS NULL

Wat het doet, is dat het de tabel met zichzelf verbindt en controleert of de min+1 ID is null of niet. Als het null is, is die ID beschikbaar. Stel dat u de tabel heeft waarin ID zijn:
1
2
5
6

Deze zoekopdracht geeft je resultaat als 3 dat is wat je wilt.



  1. Queryprestaties verbeteren met veel JOIN's

  2. SQL-operators

  3. UPDATE indien bestaat anders INSERT in SQL

  4. Kan geen databasetabel met de naam 'gebruiker' maken in PostgreSQL