我在我的數據庫如下表:UPDATE表名,(SELECT @id:= 0)DM SET sale_id =(@id:= @id 1)
CREATE TABLE IF NOT EXISTS `candidate` (
`candidate_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`roll_no` int(10) unsigned NOT NULL,
`candidate_name` varchar(255) DEFAULT NULL,
`batch_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`candidate_id`),
KEY `candidate_name` (`candidate_name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
我需要做的是將roll_no分配給特定批次中的候選人。即roll_no將從1開始,每個batch_id。 *(不用說,每批或每批有數千個候選人)*。默認情況下,roll_no字段的值爲0。
我試着這樣做:
UPDATE candidate c, (SELECT @id := 0) serial
SET roll_no = (@id := @id + 1)
WHERE c.batch_id = 5
ORDER BY c.candidate_name ASC
結果造成:不正確使用UPDATE和ORDER BY的 如果我省略ORDER BY子句,它工作正常,但我需要根據roll_no分配給考生他們的名字的升序 有沒有什麼辦法可以實現我正在嘗試的......最重要的是,我清楚了嗎? 提前感謝你。
對不起,它沒有工作! –