在MySQL中,有時候我們需要對某個字段相同的數據進行加序號操作,這時可以使用如下的方法:
SET @num := 0, @id := ''; UPDATE `table` SET `sequence`=IF(@id=`id`, @num:=@num+1, @num:=1), `id`=(@id:=`id`) ORDER BY `id`, `timestamp` ASC;
這個語句是將`table`表中的`sequence`字段設為每個`id`下相同的數據的序號。我們先將變量`@num`和`@id`初始化為0和空字符串,并對`table`表進行更新,按照`id`和`timestamp`升序排列。在更新時使用了IF語句來判斷當前數據的id是否與之前相同,相同則將@num加1,不相同則將@num重置為1。最后將當前數據的id保存到@id中,以便下一次比較使用。
通過這個方法,我們可以方便地對MySQL中的字段相同的數據進行加序號操作,讓數據更加有序化。