【问题标题】:INSERT Multiple with SELECT用 SELECT 插入多个
【发布时间】:2020-01-30 12:36:08
【问题描述】:

我正在尝试将 INSERT into 与 SELECT DISTINCT 一起使用,这是我迄今为止尝试过的。

INSERT INTO creature_loot_template VALUES (id, 68910, 0, 100, 1, 1, 0, 1, 1, NULL)
SELECT DISTINCT id FROM creature WHERE map = 389;

所以这是它应该做什么的例子(有超过 20 - 40 行:

INSERT INTO creature_loot_template VALUES (123, 68910, 0, 100, 1, 1, 0, 1, 1, NULL);
INSERT INTO creature_loot_template VALUES (124, 68910, 0, 100, 1, 1, 0, 1, 1, NULL);
INSERT INTO creature_loot_template VALUES (125, 68910, 0, 100, 1, 1, 0, 1, 1, NULL);
INSERT INTO creature_loot_template VALUES (125, 68910, 0, 100, 1, 1, 0, 1, 1, NULL);

我还尝试了以下 SQL:

INSERT INTO creature_loot_template VALUES ((SELECT DISTINCT id FROM creature WHERE map = 389), 68910, 0, 100, 1, 1, 0, 1, 1, NULL);
SET
@id = (SELECT DISTINCT id FROM creature WHERE map = 389);
INSERT INTO creature_loot_template VALUES (@id, 68910, 0, 100, 1, 1, 0, 1, 1, NULL);

【问题讨论】:

标签: mysql sql mariadb


【解决方案1】:

只需在SELECT 上列出您想要的值:

INSERT INTO creature_loot_template
    SELECT DISTINCT id, 68910, 0, 100, 1, 1, 0, 1, 1, NULL
    FROM creature
    WHERE map = 389;

我建议您也列出INSERT 中的所有列。这可确保代码执行您真正想要的操作。

【讨论】:

  • 我希望你没有投反对票,否则你的回答已经解决了我的问题,我会随时接受,谢谢
  • @JadaDeveloper 。 . .作为一个从不投反对票的人,你可以放心,我没有投反对票。我发现 cmets 更有用。在质量非常低的情况下,我只是投票关闭。
  • DISTINCT 可能是多余的。
  • @RickJames。 . .没有迹象表明单个map 是否可以重复。我确实同意它可能是多余的,但 OP 在问题中有它。该评论确实应该针对 OP。
猜你喜欢
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多