Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从MySql获取非顺序ID_Php_Mysql_Sql_Auto Increment - Fatal编程技术网

Php 从MySql获取非顺序ID

Php 从MySql获取非顺序ID,php,mysql,sql,auto-increment,Php,Mysql,Sql,Auto Increment,我使用MySql跟踪图像,每个图像都分配了一个自动递增的ID。ID列在理论上也应该类似 (1,2,3,4,5,6) 可悲的是,在过去的两年里,由于节制的原因,我不得不删除行,我的ID列看起来更像 (1,3,4,7) 是否仍然可以获取缺少的ID,即: (2,5,6) 我在这里和其他各种论坛上搜索过,但我什么也没找到。我发现的唯一与我类似的答案是将我的ID列与另一个表的ID列进行比较,并找出差异。这是一个选项,但我的主表由25000行组成,所以这有点困难 提前谢谢你 使用1到25000之间的整数创建

我使用MySql跟踪图像,每个图像都分配了一个自动递增的ID。ID列在理论上也应该类似

(1,2,3,4,5,6)

可悲的是,在过去的两年里,由于节制的原因,我不得不删除行,我的ID列看起来更像

(1,3,4,7)

是否仍然可以获取缺少的ID,即:

(2,5,6)

我在这里和其他各种论坛上搜索过,但我什么也没找到。我发现的唯一与我类似的答案是将我的ID列与另一个表的ID列进行比较,并找出差异。这是一个选项,但我的主表由25000行组成,所以这有点困难


提前谢谢你

使用1到25000之间的整数创建临时表。然后对其进行左/右连接以查找缺少的ID。

尝试:

SELECT a.id+1 AS start, MIN(b.id) - 1 AS end
FROM table1 AS a, table1 AS b
WHERE a.id < b.id
GROUP BY a.id
HAVING start < MIN(b.id) ;
选择a.id+1作为开始,选择MIN(b.id)-1作为结束
表1为a,表1为b
其中a.id

给出样本数据和您想要的结果。@echo\u他给了我。该表包含
ID=1,3,4,7
,他想要
2,5,6
,这些ID在序列中被跳过。@Barmar是的,我的意思是如果这些ID像他提到的那样以逗号分隔,或者它们在每一行中。他说这是一个自动递增的ID列。如果我的示例有点模糊,很抱歉,下面是一些示例数据:(4800',1',1367305200',NULL,0',20',0'),(4802',1',1367305200',NULL,0',16',0'),我希望得到4801的帮助!内存表将是最快的。也可以使用子查询生成数字范围。
从中选择units.I+tens.I*10+1作为整数(当我选择工会时选择1工会选择2工会选择3工会选择4工会选择5工会选择6工会选择7工会选择8工会选择9工会选择0)单位交叉联接(当我选择工会时选择1工会选择2工会选择3工会选择4工会选择5工会选择6工会选择7工会选择8工会选择9工会选择0)十位数
积分: