当前位置: 首页 > 面试题库 >

在MySQL中生成一系列数字

喻高寒
2023-03-14
问题内容

如何从MySQL查询生成一系列连续数字(每行一个),以便可以将它们插入表中?

例如:

nr
1
2
3
4
5

我只想为此使用MySQL(不使用PHP或其他语言)。


问题答案:

如果您需要表中的记录,并且希望避免并发问题,请按照以下方法操作。

首先,您创建一个用于存储记录的表

CREATE TABLE `incr` (
  `Id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`Id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

其次,创建一个存储过程,如下所示:

DELIMITER ;;
CREATE PROCEDURE dowhile()
BEGIN
  DECLARE v1 INT DEFAULT 5;
  WHILE v1 > 0 DO
    INSERT incr VALUES (NULL);
    SET v1 = v1 - 1;
  END WHILE;
END;;
DELIMITER ;

最后调用SP:

CALL dowhile();
SELECT * FROM incr;

结果

Id
1
2
3
4
5


 类似资料:
  • 问题内容: 我需要使用表/结果集/任何包含整数(包括整数)的联接。是否有一种简单的方法来实现这一目标而不仅仅是构建表? (顺便说一句,这种类型的结构称为“ 元查询 ”吗?) 被限制在合理的范围内(<1000) 问题答案: MySQL中没有序列号生成器(CREATE SEQUENCE )。最近的是,它可以帮助您构造表。

  • 问题内容: 在PostgreSQL中,是否可以生成一系列重复数字?例如,我要生成数字1到10,每个数字重复3次: 问题答案: 您可以将其交叉加入一系列3:

  • 问题内容: 我的表每隔十分钟就有一次数据: 是否可以为MySQL制定一个SQL查询,每小时返回一系列平均值? 在这种情况下,它应该返回: 问题答案: 尚不清楚是否要在几天内汇总平均值。 如果您希望26号午夜与27号午夜的平均值不同,则可以修改Mabwi的查询: 请注意该子句中的其他内容。没有这个,查询将把从到的所有数据平均在一起,而不考虑它发生的日期。

  • 在MySql中的SQL语句中,可以轻松地使用以下方法创建一行值: 选择1、2、3、4、5、6、7、8、9、10; 这将生成包含从1到10的数字的单行,但是否可能有包含这些值的单列。

  • 问题内容: 我有一张桌子:student_marks 预期产量: 使用mysql用户定义的变量,可以使用查询来完成: 在不使用用户定义变量的情况下,有什么方法可以在msyql中实现? 问题答案: 基于您不想使用用户定义变量的原因,因为要避免有两个查询,一个用于初始化,一个用于使用它,您可以使用以下方法:

  • 问题内容: 这个问题已经在这里有了答案 : 从日期范围生成天数 (29个答案) 2年前关闭。 在mysql中生成给定范围内的一系列日期的最佳方法是什么? 我想到的应用程序是编写一个报表查询,该查询将为每个日期返回一行,而不管是否有要报告的数据。最简单的形式: 我曾尝试创建一个包含许多日期的表,但这似乎是一个较差的解决方法。 问题答案: 我认为拥有 日历表 是个好主意;您可以获得很多报告和查询功能,