Mysql 插入到选择如何按正确顺序插入?

Mysql 插入到选择如何按正确顺序插入?,mysql,insert,Mysql,Insert,我有一个简单的疑问: INSERT INTO test(id) SELECT rowid FROM words ORDER BY word 表测试有两个字段“nr”和“id”-“nr”是自动递增的 我希望按“order by”指定的顺序添加记录,但它们是按rowid排序的 我得到的结果如下: nr id 1 1 2 2 3 3 等等 如何按正确的顺序进行 CREATE TABLE `words` ( `rowid` INT(10) UNSIGNED NOT NULL A

我有一个简单的疑问:

INSERT INTO test(id) SELECT rowid FROM words ORDER BY word
表测试有两个字段“nr”和“id”-“nr”是自动递增的

我希望按“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

@因为您的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')。。。这更像是你的数据。

请看,这个问题真的有问题吗?假设单词是唯一的@PaulSpiegel
ORDER BY
在非唯一数据上仍然可以在存在领带的情况下给出非皮肤病(“随机”)顺序。@RaymondNijland“适合我”的意思是-我无法重现“问题”。因此,由OP发布一个不返回预期结果的可复制示例。