php - 检查 mysql ID 跳过 php

标签 php mysql gaps-and-islands

说在 mysql 中我有一个 id 列,只是 int 自动递增。

有什么方法可以让我使用 php 告诉我什么时候有一个 id 被删除了?

比如说我有

5 6个 7 8个 10

我需要它来告诉我 9 丢失了,并为所有 ID 继续此操作。有什么办法吗?

谢谢

最佳答案

您需要一个包含所有值的表。然后进行左连接以查找丢失的 ID 就很简单了。

create table all_values
(id int not null) engine = myisam;

insert into all_values (id) values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);

create table existing_values like all_values;

insert into existing_values (id) values (5),(6),(7),(8),(10);

select a.id from all_values as a
left join existing_values as b
on a.id = b.id
where b.id is null

关于php - 检查 mysql ID 跳过 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6983418/

相关文章:

mysql - 如何使用条件对不同行中的相同值进行分组? (MYSQL)

javascript - Cakephp 2.X 具有内联按钮

mysql - MySQL中是否存在不能存储在字段中的非法字符?

php - 如何使用 Eloquent 从 Lumen 数据库中获取数据?

sql - 查找表中连续的空闲号码

sql - 在 T-SQL 中查找开始和结束日期(基于设置)

php - Symfony2 在使用 twig 呈现文本时使用 css 删除部分文本

php - 使用 Composer 的自动加载

php - MYSQL-在主表和子表中创建和存储主键

mysql - 在一张表的基础上再添加一列