mysql - MySQL 查找值序列中的缺失间隙
问题描述
我在 mysql 中尝试过将缺失的空白添加到列表中,但我不知道如何。
我的数据是:
Cuenta
----------
A01
A02
A03
A05
A08
A10
我需要得到以下结果:
Cuenta
----------
A04
A06
A07
A09
谢谢!
解决方案
SELECT A.val
FROM (
SELECT CONCAT('A', LPAD((@var_i := @var_i + 1), 2, 0)) val
FROM (SELECT @var_i := 0) A0
CROSS JOIN (SELECT NULL UNION ALL SELECT NULL) A1 -- 2^1
CROSS JOIN (SELECT NULL UNION ALL SELECT NULL) A2 -- 2^2
CROSS JOIN (SELECT NULL UNION ALL SELECT NULL) A3 -- 2^3
CROSS JOIN (SELECT NULL UNION ALL SELECT NULL) A4 -- 2^4
CROSS JOIN (SELECT NULL UNION ALL SELECT NULL) A5 -- 2^5
CROSS JOIN (SELECT NULL UNION ALL SELECT NULL) A6 -- 2^6
CROSS JOIN (SELECT NULL UNION ALL SELECT NULL) A7 -- 2^7
LIMIT 99 -- 2^7 > 99 > 2^6, length 2 table should be cross joined at least 7 times
) A
LEFT JOIN `table` t ON A.val = t.Cuenta
WHERE t.Cuent IS NULL
;
推荐阅读
- amp-html - 如何判断 AMP 是否在您的博客上运行
- authentication - 网站仅供使用 Google 登录的公司成员访问
- android-studio - 如何在android studio中修复CameraSource预览方向
- file - File.ReadLines 在读取文件后保持文件锁定,我无法写入
- python - 如何在单个字段中读取带有多个引号分隔符的 csv?
- elixir - 长生不老药中的双反斜杠是什么意思?
- flutter - StreamBuilder 中的 Flutter 显示列表
- flutter - 错误:找不到正确的提供者
- > 在此 BrewList 小部件上方
- assembly - NASM 中的 32 位寻址问题
- r - Creating overlay plots with a loop in r