首页 > 解决方案 > 检测编号表上的缺失记录

问题描述

我有一个存储消息的数据库。有一个“计数”列,因此第一条消息的计数为 1,第二条消息的计数为 2,依此类推。

现在我正在寻找一种方法来检测是否缺少消息,例如:“从消息中选择计数”返回 1,2,4 而不是 1,2,3,4。

我在后端使用休眠。因此,也欢迎使用 Java 解决方案。

谢谢。

标签: javasqlhibernatespring-data-jpaspring-data

解决方案


尝试比较“计数”列中的行数和最大值

  SELECT ( count(*) != max(count) ) AS MISSING_MESSAGE FROM message 

如果“count”列以大于 0 的数字开头,而不是 max,则使用 max 和 min + 1 之间的范围

  SELECT ( count(*) != (max(count) - min(count) + 1) ) AS MISSING_MESSAGE FROM message 

推荐阅读