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发布一个不返回预期结果的可复制示例。