我有一个包含“ID”列的表。 此列中存在1000到9999之间的不同数字ID。 (1000,1001 ......... 5000,5001 ....,8000,8001 ....,9000 .... 9999)。 现在我需要一个“泛型”查询,它会在此列中显示不同的起始ID序列号。 例如,期望的输出
1000,
5000,
8000,
9000
如果将来在ID列中添加了7000系列,那么相同查询的输出应该也包括在列表中的7000
1000,5000,7000,8000,9000
答案 0 :(得分:4)
如果你的系列以每千个
开头,那么另一种方法就是这样做SELECT id
FROM table1
WHERE id % 1000 = 0
这是 SQLFiddle 演示
现在这里是一种通用的方法,它将id值中的每个“孤岛”(一系列值,其中next = prev + 1)视为一个系列。这样一个系列可以以任何值
开始和停止SELECT t1.id
FROM table1 t1 LEFT JOIN table1 t2
ON t1.id = t2.id + 1
WHERE t2.id IS NULL
这是 SQLFiddle 演示
答案 1 :(得分:1)
尝试这个和它的2个零..
select * from table where id like '%000' or id like '%00';
答案 2 :(得分:1)
试试这个
SELECT min(id) from tablename group by SUBSTRING(id, 1, 1)