【问题标题】:SQL INSERT INTO selectSQL INSERT INTO 选择
【发布时间】:2012-06-01 14:10:29
【问题描述】:

目前使用 MySQL 数据库

想要为另一个 table (t_1) 的 where 条件中的每个匹配条目在 table (t_2) 中插入一个新行。

我还想为每个条目包含一个单独的表中的计数值(来自表计数器的计数)和每个条目的字符串值“减少”。不知道如何解决这个问题,这是我目前所拥有的:

INSERT INTO t_2(count,id,val='decrease')
SELECT MAX(count) as count FROM counter
SELECT id FROM t_1 WHERE val < 0

我得到的错误是:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '='decrease' 附近使用的正确语法) SELECT count FROM counter SELECT id FROM t_1 WHERE val

我知道我可能不应该有 val='decrease',但只是想说明我希望它是为每个新行插入的字符串值。

【问题讨论】:

  • 正要问同样的问题

标签: mysql sql select insert


【解决方案1】:

试试这个:

INSERT INTO t_2 (count,id,val) 
SELECT 
    (SELECT MAX(count) FROM counter),
    t1.id, 
    'decrease'
FROM t_1 
WHERE val < 0,

【讨论】:

  • 如果我想在字符串值中添加一个字段,我可以像往常一样连接它吗?例如:('decrease ' + t_1.detail) as val
  • @elzaer:你应该使用CONCAT('decrease ', t_1.detail)
【解决方案2】:

这就是你要找的吗?

INSERT INTO t_2(count,id,val)
    SELECT (SELECT MAX(count) as count FROM counter) as count, id, 'decrease' as val
    FROM t_1
    WHERE val < 0

【讨论】:

    猜你喜欢
    • 2019-01-10
    • 1970-01-01
    • 2013-03-09
    • 2014-02-11
    • 2010-11-17
    • 2014-08-26
    • 2023-02-09
    • 2012-01-23
    • 1970-01-01
    相关资源
    最近更新 更多