Saya harus menghadapi masalah serupa yang mengurutkan pohon kategori secara tidak wajar. Jika Anda memasukkan semua baris untuk satu id pada satu waktu, Anda dapat melakukan sesuatu seperti ini untuk setiap subId:
SET @seq = 0;
INSERT INTO test
(id, subId, text) VALUES
(_id, @seq := @seq + 1, 'Some text')
;
Jika Anda perlu "menambahkan" baris ke id, Anda dapat mengatur @seq dengan
SELECT IFNULL(MAX(subId), 0) INTO @seq FROM test WHERE id = _id;
Ini tentu saja memerlukan pengelolaan id oleh aplikasi dan bukan mySQL.
Anda dapat melakukan hal yang sama seperti blok kode terakhir untuk mendapatkan id berikutnya yang tersedia juga.