【问题标题】:MySQL insert into table with a set of valuesMySQL 使用一组值插入表中
【发布时间】:2014-04-25 21:25:51
【问题描述】:

我需要插入一个包含一些值的表(例如:在这种情况下为“NDA”)。如果我只插入一个值,这似乎很有效。我有大约十几个类似的值,是否可以调整此查询以插入说 { 'NDA', 'SDM', 'APM' } 值。很想知道是否可以在没有存储过程或复制粘贴相同语句并更改值的情况下完成。

INSERT IGNORE INTO customer_feature (customer_id, feature)
SELECT c.id, 'NDA' FROM
customer as c
where c.edition = 'FREE_TRIAL';

参考:mysql -> insert into tbl (select from another table) and some default values

【问题讨论】:

  • 产生这些值的条件是什么?
  • 我没有关注你。 MySQL 中的任何列都可以指定默认值。如果您在插入时没有为该列指定值,则该记录将获得该列的默认值。
  • varchars 的默认值?我不太确定。但我猜这是数据库依赖。
  • 无论如何:这个问题只是不清楚。尝试以一种不仅你知道你在说什么,而不是每个人都知道你的意思的方式写作。
  • 毕竟:听起来更像是条件默认值,您可以将其放在表格中,定义您的条件和默认值。因此,您可以在不修改太多查询的情况下添加新的默认值。

标签: mysql sql


【解决方案1】:

这是你想要的吗?

INSERT IGNORE INTO customer_feature(customer_id, feature)
    select c.id, f.feature
    from customer c cross join
         (select 'NDA' as feature union all select 'SDM' union all select 'APM'
         ) f
    where c.edition = 'FREE_TRIAL';

【讨论】:

  • 谢谢戈登!这就是我想要的。
  • 答案澄清了问题。
猜你喜欢
  • 2018-12-26
  • 2015-05-10
  • 1970-01-01
  • 2015-05-28
  • 2016-03-27
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 2019-01-08
相关资源
最近更新 更多