Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 需要SQL查询来访问表中存在的不同序列号_Mysql_Sql_Sql Server - Fatal编程技术网

Mysql 需要SQL查询来访问表中存在的不同序列号

Mysql 需要SQL查询来访问表中存在的不同序列号,mysql,sql,sql-server,Mysql,Sql,Sql Server,我有一个包含“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 试试这个,它有两个零

我有一个包含“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

试试这个,它有两个零

select * from table where id like '%000' or id like '%00';

如果你的系列剧以千分之一开头,还有另一种方法

选择id
来自表1
其中id%1000=0
这里是演示


现在这里有一种通用方法,它将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
这里是演示

试试这个

SELECT min(id) from tablename group by SUBSTRING(id, 1, 1)

询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试的解决方案,为什么它们不起作用,以及预期的结果。不,不是这样。DataGeneric我本以为ID列不是String@user2310289我试过了,还有它的味道worked@user2310289:解决方案依赖于隐式数据类型转换以及SQL Server和MySQL(问题中标记的两个DBMS)在数据类型检查方面相当宽容的事实。如果使用更严格的数据类型检查(例如Postgres),在DBMS上的查询将失败。啊,我是一个Postgres的家伙。很高兴知道它能工作。如果一个新系列以7500开头,这不会失败吗?谢谢彼得。更妙的是:)