gpt4 book ai didi

mysql - 从自动增量主键中获取已删除主键的列表

转载 作者:行者123 更新时间:2023-11-30 23:11:22 25 4
gpt4 key购买 nike

我有一个表,其中 id 是设置了自动递增的主键列。它包含超过 10,00 行。

我需要获取所有已删除的主键。喜欢

1 xcgh fct

2 xxml fcy

5 ccvb fcc

6 tylu cvn

9 vvbh cvv

我应该得到的结果是

3

4

7

8

目前我计算所有记录,然后在另一个表中插入(1 计数),然后我从该表中选择记录表中存在的 id。但是这种方法效率很低。我可以使用任何直接查询吗?请指定为mysql。

最佳答案

参见 fiddle : http://sqlfiddle.com/#!2/edf67/4/0

CREATE TABLE SomeTable (
id INT PRIMARY KEY
, mVal VARCHAR(32)
);

INSERT INTO SomeTable
VALUES (1, 'xcgh fct'),
(2, 'xxml fcy'),
(5, 'ccvb fcc'),
(6, 'tylu cvn'),
(9, 'vvbh cvv');

set @rank = (Select max(ID)+1 from sometable);

create table CompleteIDs as (Select @rank :=@rank-1 as Rank
from sometable st1, sometable st2
where @rank >1);


SELECT CompleteIDs.Rank
FROM CompleteIDs
LEFT JOIN someTable S1
on CompleteIDs.Rank = S1.ID
WHERE S1.ID is null
order by CompleteIDs.rank

这里有一个假设。 someTable中的记录数* sometable中的记录数大于sometable中的最大ID。否则这不起作用。

关于mysql - 从自动增量主键中获取已删除主键的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19590248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com