mysql - MySQL 中是否有类似的 generate_series 函数?

标签 mysql sql

我想知道 MySQL 中是否有一个像 generate_series 这样的函数,它通常接受一个起始整数值、一个结束整数和一个增量,并返回一个包含开始和结束之间的所有值的数组。如果没有这样的函数,如何在 MySQL 中声明它?

最佳答案

没有这样的功能。 MySQL 不支持返回表的用户定义函数,因此您不能定义自己的函数。在 v8+ 中,您可以使用递归 CTE 生成数字。

但是,最简单的方法可能是定义您自己的numbers 表。另一种选择是使用任何旧的大表并执行类似的操作:

select (@rn := @rn + 1) as num
from bigtable t cross join
     (select @rn := 0) params
limit 100;  -- however many numbers you want

当然,bigtable 必须有足够的行来容纳您要生成的数字。

关于mysql - MySQL 中是否有类似的 generate_series 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51735907/

相关文章:

java - SQL 注入(inject)通常如何在 Spring/Hibernate 设置中停止

php - MySQL:是否可以缩短错误消息?

mysql - 根据另一个表中的列更新表中的列。

mysql - SQL 中 SUM 的百分比

java - 是否可以拦截所有 DataNucleus 的 JDO SQL 查询?

mysql - 找到表中仅第二位有空格的特定记录?

sql - 按 MS Access 中的连续日期分组

mysql - 如何获取多个日期范围的 mysql 结果?

mysql - SQL:将列数据移动到同一关系中的其他表

mysql - 如何查看查询中的参数?