ก๊วนซอฟท์แวร์ </softganz> SoftGang (Gang Software)

Web &amp; Software Developer Gang.

Update table with incremented value grouped by column

by Little Bear @4 พ.ค. 60 21:43 ( IP : 223...160 ) | Tags : MySQL

ต้องการให้สร้างลำดับของ sorder ของข้อมูลในกลุ่มที่มีค่า tpid เดียวกัน โดยเริ่มนับ sorder จาก 1 เป็นต้นไป และเริ่มนับ 1 ใหม่เมื่อเปลี่ยนค่า tpid

SET @f := null, @i = null;
UPDATE `jobtr`
SET
    sorder = IF(tpid = @f, @i := @i+1, @i := 1),
    tpid = (@f := tpid)
ORDER BY tpid, sorder, jobtrid;

หากไม่ต้องเริ่มต้น group

SET @i = 0;
UPDATE users SET uid = @i := @i+1 ORDER BY uid ASC;