【问题标题】:INSERT INTO: is there a shorthand to insert duplicate values?INSERT INTO:是否有插入重复值的速记?
【发布时间】:2014-01-26 09:18:58
【问题描述】:

我有以下 INSERT 查询,我想知道是否可以合并具有相同值的两列? 是的,我必须使用其中的两个以备将来更改。

insert into `products`
set
`name` = 'y',
`time` = 'x',
`time2` = 'x';

从逻辑上思考,伪代码time, time2 = 'x' 应该能以某种方式工作,但它没有。 谢谢。

【问题讨论】:

    标签: sql sql-insert shorthand


    【解决方案1】:

    您使用的语法不是insert 的标准语法。我相信这是 MySQL 的特殊语法。

    这是一种方法:

    insert into `products`(name, time, time2)
        select 'y', 'x', 'x';
    

    如果您在 MySQL 中执行此操作并将其输入,您可以执行以下操作:

    insert into `products`(name, time, time2)
        select 'y', val, val
        from (select 'x' as val) t;
    

    当然,在这种情况下,这不会节省任何输入。

    【讨论】:

    • 谢谢,我知道那样,但从来没有真正突出这一点,现在我知道了,谢谢。也很高兴你提供了一个解决方案,但我可能会坚持旧格式。
    【解决方案2】:

    不,您必须为每列单独指定一个值。

    我可以为您的案例提供的唯一建议是编写一个触发器以将time 列的值复制到time2。但是,除非您经常这样做,否则为这种情况编写触发器可能不值得。

    【讨论】:

    • 不,不,谢谢;可能不,我只骑了几次,所以不值得。
    猜你喜欢
    • 1970-01-01
    • 2016-03-21
    • 2014-12-07
    • 2018-11-13
    • 2014-03-22
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多