php mysql 出现 间隔 记录 遗漏
做数据遗漏用的比如字段haoma里面是号码的数字有123456···等等我要算出有多少期没出这个号码了,比如2号就是第一步:获取数据库最新一条数据的ID比如是id=135...
做数据遗漏用的
比如字段 haoma 里面是号码的数字 有1 2 3 4 5 6 ···等等
我要算出 有多少期没出这个号码了,比如2号
就是
第一步:获取 数据库最新一条数据的ID
比如是id=1355
然后 在写一条SQL 查找 号码是2的数据 但是 ID是<= 最新的那条ID
如 1350
这样自后 我用 最新的那个ID减去 后来获取 的ID
这样就遗漏5期了。也就是说 有5条记录没出现了。
---重点---
但是问题出现了。
我要在一段时间内,如:一星期 找出 这个最大遗漏 也就是说 一星期内 最大未出现的记录是多少。
请问怎么做? 展开
比如字段 haoma 里面是号码的数字 有1 2 3 4 5 6 ···等等
我要算出 有多少期没出这个号码了,比如2号
就是
第一步:获取 数据库最新一条数据的ID
比如是id=1355
然后 在写一条SQL 查找 号码是2的数据 但是 ID是<= 最新的那条ID
如 1350
这样自后 我用 最新的那个ID减去 后来获取 的ID
这样就遗漏5期了。也就是说 有5条记录没出现了。
---重点---
但是问题出现了。
我要在一段时间内,如:一星期 找出 这个最大遗漏 也就是说 一星期内 最大未出现的记录是多少。
请问怎么做? 展开
展开全部
首先,你用新id减去旧id做法有缺陷。
如果id不连续,你得到结果就是错误的。
建议改为一下方法:
第一步:
select id from tables where haoma like '%2%' order by id desc limit 1;
注:如果号码字段包含多位数的,最好存储时候用"," 隔开, 且前后都加上,方便查询。如:,2,23,12,
select id from tables where haoma like '%,23,%' order by id desc limit 1;
第二步: select count(*) from tables where id > "第一步取得的id"
这样就得到几期没开。
如果要查询一段时间内,那就要有个时间戳字段,sql改为如下格式
第一步改为:
select id from tables where timestamp > "替换为某个时间戳" and haoma like '%2%' order by id desc limit 1;
第二步不变
祝你成功!
如果id不连续,你得到结果就是错误的。
建议改为一下方法:
第一步:
select id from tables where haoma like '%2%' order by id desc limit 1;
注:如果号码字段包含多位数的,最好存储时候用"," 隔开, 且前后都加上,方便查询。如:,2,23,12,
select id from tables where haoma like '%,23,%' order by id desc limit 1;
第二步: select count(*) from tables where id > "第一步取得的id"
这样就得到几期没开。
如果要查询一段时间内,那就要有个时间戳字段,sql改为如下格式
第一步改为:
select id from tables where timestamp > "替换为某个时间戳" and haoma like '%2%' order by id desc limit 1;
第二步不变
祝你成功!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询