gpt4 book ai didi

mysql - INSERT INTO SELECT 如何按正确顺序插入?

转载 作者:行者123 更新时间:2023-11-29 15:33:52 26 4
gpt4 key购买 nike

我有一个简单的查询:

INSERT INTO test(id) SELECT rowid FROM words ORDER BY word

TABLE 测试有两个字段 'nr' 和 'id' - 'nr' 是 auto_increment

我希望按照“ORDER BY”指定的顺序添加记录,但它们是按 rowid 排序的...

我得到的结果如下:

nr id    
1 1
2 2
3 3

等等...

如何以正确的顺序进行操作?

CREATE TABLE `words` (
`rowid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`word` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8_polish_ci',
`display` VARCHAR(64) NULL DEFAULT NULL COLLATE 'utf8_polish_ci',
`difficult` TINYINT(4) UNSIGNED NULL DEFAULT NULL,
`islocked` BIT(1) NULL DEFAULT NULL,
`valid` BIT(1) NULL DEFAULT NULL,
PRIMARY KEY (`rowid`),
INDEX `word` (`word`),
INDEX `display` (`display`)
)
COLLATE='utf8_polish_ci'
ENGINE=InnoDB
ROW_FORMAT=DYNAMIC
AUTO_INCREMENT=57009

最佳答案

@barpas 这是不可能实现你想要的,因为你的words.word列不是唯一的。例如,假设单词“Apple”在单词表中出现了 4 次,如下所示:

"rowid"  "word"
10 Apple
94 Apple
130 Apple
526 Apple

这四个 ID 中的哪一个应该插入到 test.id 中?结果不是 1 个,而是 4 个。在 Paul 的示例中,没有重复值(“a”、“b”、“c”)都是不同的,并且没有一个重复。将 Paul 的示例更改为 ('a', 'a','a','b','b','c','c','c','c') ......这更像是您的数据。

关于mysql - INSERT INTO SELECT 如何按正确顺序插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58452192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com