这在mySQL中是可能的吗?

时间:2011-04-11 16:27:19

标签: mysql

我想在一个插入中添加100行,用一系列数字(及其等效字符串)填充下一个字段。

换句话说,沿着这些方向的东西(myNumber将是一个varchar,myOrder将是一个int):

插入myTable(myNumber,myOrder)选择“0” - “99”,选择1-100

我有一种感觉,这是无法做到的,但我想我会问。

3 个答案:

答案 0 :(得分:2)

你应该能够不创建一个全新的表...只要你有一个包含你希望添加的记录数量的表,即使对内容没有影响......你可以做使用MySQL查询变量..

insert into YourTable ( YourSequence, YourStringVersion, field3 )
   ( SELECT 
           @seq:= @seq+1 YourSequence,
           CONVERT( @seq, CHAR(8) ) YourStringVersion,
           "Other Defaults" field3
        FROM 
           (select @seq := 1) vars,
            SomeTableWithAtLeast100Records limit 100 ) JustToAdd

答案 1 :(得分:0)

可以将“选择0-99,选择1-100”作为一组工会写入:

select 0 as num, 1 as order
union all
select 1 as num, 2 as order

然后根据该结果集插入。虽然不是很有趣 - 最好的方法可能是通过存储函数和游标 - 但这一次只能是1行。

答案 2 :(得分:0)

我无法想象你试图解决哪些问题需要解决的问题 - 你似乎用类似的奇怪问题发布了很多问题。

由于您正在寻找代码解决方案,因此您可能希望这么做很多次。简短的回答是使用带循环的过程,或者维护表(甚至可以是'myTable'中的行的子集,然后执行

INSERT INTO myTable (mynumber, myorder, another) 
SELECT mynumber, myorder, 'new' 
FROM myTable WHERE another='TEMPLATE';