在 MySQL 中构建整数序列
创建从 n 到 m 的简单整数序列可能是数据库操作中的常见要求。要在 MySQL 中实现此目的,经常推荐的方法是使用递归公用表表达式 (CTE)。
其中一种方法是将递归 CTE 与现有表合并:
WITH RECURSIVE Numbers AS ( SELECT n, n + 1 AS next_n FROM Numbers WHERE n < m UNION SELECT m, NULL ) SELECT n FROM Numbers ORDER BY n;
In在本示例中,Numbers CTE 被定义为通过迭代地将前一个值加 1 直到达到指定的最大值 m 来生成整数序列。然后,查询使用此 CTE 对生成的序列进行选择和排序。
参考问题中建议的另一种方法是使用带有用户定义变量的单个查询:
SET @row := 0; SELECT @row := @row + 1 AS row, t.* FROM some_table t, (SELECT @row := 0) r;
该方法将@row变量初始化为0,并为结果集中的每一行将其加1。虽然这种方法在某些情况下可能更简单,但它依赖于并非所有 MySQL 版本或上下文都支持的用户定义变量。
以上是如何在 MySQL 中生成整数序列?的详细内容。更多信息请关注PHP中文网其他相关文章!