【问题标题】:Inserting for mysql with a loop like for or foreach -procedure使用 for 或 foreach -procedure 之类的循环插入 for mysql
【发布时间】:2021-07-07 13:40:06
【问题描述】:

我有很多行要添加。我可以通过复制和粘贴来做到这一点,但我必须写 25 * 30 = 750 行插入行。该程序有更简单的方法吗?谢谢。

例子:

ids input varchar: 25,26,27,28

for 25 => ids[0]:
insert into (a,b,c) values ('y',ids[0],2);
insert into (a,b,c) values ('x',ids[0],2);
insert into (a,b,c) values ('z',ids[0],2);
insert into (a,b,c) values ('t',ids[0],2);

for 26 => ids[1]:
insert into (a,b,c) values ('y',ids[1],2);
insert into (a,b,c) values ('x',ids[1],2);
insert into (a,b,c) values ('z',ids[1],2);
insert into (a,b,c) values ('t',ids[1],2);

我怎样才能以最简单的方式解决它?

注意:我不能使用 php。我必须在数据库上做。

【问题讨论】:

  • 这是正确的 4 次 ids[0] 然后 id 1,2,3,4
  • 对不起。我写错了。我修好了它。谢谢。 @BerndBuffen
  • 您忘记了表名,您想为这些 id 存储“ids[0]”还是 25?

标签: mysql loops stored-procedures mariadb


【解决方案1】:

您可以使用这样的查询:

MariaDB 有一个续集引擎

INSERT INTO myTable (a,b,c) 
SELECT 
    ELT(zt.seq, 'y','x','z','t') AS a,
    r.seq AS b,
    2 AS c
    from seq_1_to_4 zt
CROSS JOIN ( SELECT * FROM seq_25_to_28) as r;

注意:您也可以在没有 INSERT 行的情况下执行它以查看查询的输出

【讨论】:

    猜你喜欢
    • 2018-01-14
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多