我有一个简单的查询:
INSERT INTO test(id) SELECT rowid FROM words ORDER BY word
TABLE测试具有两个字段'nr'和'id'-'nr'是auto_increment
我希望按“ ORDER BY”指定的顺序添加记录,但它们按行ID排序...
我得到如下结果:
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
答案 0 :(得分:0)
@barpas无法实现所需的内容,因为word.word列不是唯一的。例如,假设单词“ Apple”在您的单词表中出现了4次,如下所示:
uint8_t msg1[] = {0x0, 0x0, 0xE9, 0x0, 0x0, 0x0, 0x0, 0x0}; // Volume Up
input->setValue(msg1, sizeof(msg1));
input->notify();
uint8_t msg2[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
input->setValue(msg2, sizeof(msg2));
input->notify();
应该在test.id中插入四个ID中的哪个?您得到的不是4,而是1。在Paul的示例中,没有重复的值(“ a”,“ b”,“ c”)都不同,并且没有一个重复。将Paul的示例更改为具有('a','a','a','b','b','c','c','c','c')代替...更像是您的数据。