Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да намеря пропуски в последователното номериране в mysql?

Актуализиране

ConfexianMJS предостави много по-добре отговор по отношение на производителността.

Отговорът (не толкова бърз)

Ето версия, която работи на таблица с всякакъв размер (не само на 100 реда):

SELECT (t1.id + 1) as gap_starts_at, 
       (SELECT MIN(t3.id) -1 FROM arrc_vouchers t3 WHERE t3.id > t1.id) as gap_ends_at
FROM arrc_vouchers t1
WHERE NOT EXISTS (SELECT t2.id FROM arrc_vouchers t2 WHERE t2.id = t1.id + 1)
HAVING gap_ends_at IS NOT NULL
  • gap_starts_at - първи идентификатор в текущата празнина
  • gap_ends_at - последен идентификатор в текущата празнина


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework създава име на таблица за множествено число, но изгледът очаква име на таблица в единствено число?

  2. MySQL ABS() функция – Връща абсолютната стойност на число

  3. ефективен за паметта вграден SqlAlchemy итератор/генератор?

  4. Как да отмените завъртане на таблицата в MySQL

  5. Как да проектираме mysql база данни с множество наематели