我有一个充满值(twitter id)的数组,我想找到最低 id 和最高 id 之间缺失的数据?有兴趣分享一个简单的功能或如何做到这一点的想法吗?
另外,我想知道我是否可以对 mySQL 做同样的事情?我已将 key 编入索引。该表现在包含 250k 行,因此临时表和连接不会非常快或高效。我可以做一个 PHP 循环来循环数据,但这也会花费很长时间,并且占用大量内存。是否有我可以运行的特定 mysql 查询?或者我可以以某种方式使用上面的函数吗?
谢谢, 詹姆斯·哈蒂格 http://twittertrend.net
最佳答案
我有类似的需求,并编写了一个函数来返回缺失 ID 的列表。
---------------------------
create function dbo.FreeIDs ()
---------------------------
returns @tbl table (FreeID int)
as
begin
declare @Max int
declare @i int
select @Max = MAX(ID) from [TheTable]
set @i = 0
while @i < @Max begin
set @i = @i + 1
if not exists (select * from [TheTable] where ID = @i)
insert into @tbl select @i
end
return
end
关于php - 如何查找数组或 mySQL 表中丢失的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/364676/