如何从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中生成给定范围内的一系列日期的最佳方法是什么? 我想到的应用程序是编写一个报表查询,该查询将为每个日期返回一行,而不管是否有要报告的数据。最简单的形式: 我曾尝试创建一个包含许多日期的表,但这似乎是一个较差的解决方法。 问题答案: 我认为拥有 日历表 是个好主意;您可以获得很多报告和查询功能,