sql >> Database teknologi >  >> RDS >> Mysql

mysql find mindste + unikke id til rådighed

Du kan få det mindste tilgængelige ID ved at bruge denne forespørgsel:

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

Hvad den gør er, at den forbinder tabellen med sig selv og tjekker om min+1 ID er null eller ikke. Hvis det er null, så er det ID tilgængeligt. Antag at du har tabellen hvor ID er:
1
2
5
6

Derefter vil denne forespørgsel give dig resultatet som 3 hvilket er hvad du vil have.



  1. Hvordan håndterer jeg enkelte anførselstegn i en SQL-forespørgsel i PHP?

  2. Understøtter MySQL historisk dato (som 1200)?

  3. Hvordan konverteres kommaseparerede værdier til rækker i oracle?

  4. Er der et alternativ til TOP i MySQL?