查询中的 MySQL 循环变量

Posted

技术标签:

【中文标题】查询中的 MySQL 循环变量【英文标题】:MySQL Loop Variable in a Query 【发布时间】:2014-07-01 11:15:17 【问题描述】:

我想在我的 select 语句的结果中使用循环索引“i”,以便将其插入到另一个表中。是这样的:

set i=0;
while i<25 do

    insert into a (x,y,z)
    select a,b,i
    from table1;

    set i= i+1;
end while;

有什么办法呢?

【问题讨论】:

要插入 table1 的所有行吗?有什么条件吗?也许你可以发布一个真实的样本。 【参考方案1】:

完成:)

我刚刚创建了变量 i 作为@i,它已经全部解决了。

像这样:

set @i=0;
while @i<25 do

    insert into a (x,y,z)
    select a,b,@i
    from table1;

    set @i= @i+1;
end while;

谢谢 :)

【讨论】:

仅供参考,这将非常慢。您应该使用基于集合的方法。 我可以使用任何样本吗? 是的,create a numbers table 然后加入它。【参考方案2】:

作为游标单独打开表格,将字段放入变量中,然后使用这些变量和 i 将数据插入到带有 a 的表格中

insert into a (x,y,z) values (var1, var2, i).

您所写的内容会将多行放入一个表 a 中,每个值为 i。

【讨论】:

您能再解释一下吗?我是 mysql 新手,不明白这个答案...

以上是关于查询中的 MySQL 循环变量的主要内容,如果未能解决你的问题,请参考以下文章

使用表中的变量访问循环查询结果

e4a mysql

mysql 存储过程中 查询语句后面的from加上变量名 怎么写

js代码嵌套问题,为啥外层定义的变量内层不能使用

Linux mysql shell脚本 变量和环境变量 位置参数 预定义变量 运算符 判断 流程控制 for循环 与用户交互 函数

mysql查询的一个字段并循环出来的数据,能加在一起吗?