【问题标题】:MySQL insert array of hardcoded valuesMySQL插入硬编码值数组
【发布时间】:2014-05-22 15:41:15
【问题描述】:

我有一个整数列表,我想要一个将所有整数添加为特定列的 INSERT。这个想法是我可以避免使用多个 INSERT,或者我可以避免使用 SQL FOR LOOP。

这是我尝试过的:

INSERT INTO my_table
(id, number, text)
SELECT array_id, 5, 'Text'
WHERE array_id = (SELECT 9,14,19,39,58,15,1,59,40,20,17,69,12,42,22,2,57,1,8,4)

WHERE array_id IN (9,14,19,39,58,15,1,59,40,20,17,69,12,42,22,2,57,1,8,4)

还有其他各种东西,

有没有快速的方法来做到这一点?

同一问题的 B 部分是添加 Lists 的组合,如下所示:

 INSERT INTO my_table
    (id, number, text)
    SELECT array_id, array_number, array_text
    WHERE array_id = (SELECT 9,14,19,39,58,15,1,59,40,20,17,69,12,42,22,2,57,1,8,4)
    AND array_number = (SELECT 1,2,3)
    AND array_text = (SELECT 'Text A', 'Text B')

这样它就可以创建所有可能的组合。

如果有这样的超级脚本我肯定想知道!

编辑:

我认为我的问题类似于this here

【问题讨论】:

  • 为什么不在一个事务中运行多个INSERTs?
  • 因为我有一个很长的 id 列表,而且我会花很长时间。
  • 整列的值是否相同?

标签: mysql


【解决方案1】:

我找到了一个非常有前途的解决方案:

 INSERT INTO my_table
    (id, number, text)
    SELECT array_id, array_number, array_text
   FROM (SELECT 9 AS array_id UNION
          SELECT 14 UNION
          SELECT 19 UNION
          SELECT 39 UNION
          SELECT 58 UNION
          SELECT 15 UNION
          SELECT 1 UNION
          SELECT 59 UNION
          SELECT 40 UNION
          SELECT 20 UNION
          SELECT 17 UNION
          SELECT 69 UNION
          SELECT 12 UNION
          SELECT 42 UNION
          SELECT 22 UNION
          SELECT 2 UNION
          SELECT 57 UNION
          SELECT 1 UNION
          SELECT 8 UNION
          SELECT 4 ) xx
    CROSS JOIN (SELECT 1 AS array_number 
                  UNION SELECT 2
                  UNION SELECT 3
                          ) yy
    CROSS JOIN (SELECT 'Text A' AS array_text UNION 
                          SELECT 'Text B' UNION 
                          SELECT 'Text C') zz

我从this 类似的例子中获得灵感,但我的例子包含更多的组合。我在 sql fiddle 上运行它,它似乎可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 2014-06-17
    • 2013-07-15
    • 1970-01-01
    • 2014-02-20
    • 2013-07-02
    相关资源
    最近更新 更多