MySQL - توليد تسلسل مجموعة فرعية في طاولة
سؤال
لدي الجدول التالي
Id Value
1 3
1 12
1 67
2 7
2 99
5 30
5 33
5 4
5 87
5 12
5 1
أرغب في تحديثه للحصول على هذا الجدول.
Id UniqueIdBySubSet Value
1 1 3
1 2 12
1 3 67
2 1 7
2 2 99
5 1 30
5 2 33
5 3 4
5 4 87
5 5 12
5 6 1
لقد وجدت الخيط المثالي على ذلك، لكنه كان ل MSSQL. يمكنني استخدام MySQL 4.1.10.
يمكن العثور على الخيط الآخر هنا: توليد تسلسلات فرعية من الجدول.
هل يعرف أحد كيف يمكنني القيام بذلك في MySQL؟
شكرا لك يا جان فرانسوا
المحلول
SET @r := 0;
SET @id := 0;
UPDATE mytable m
SET m.UniqueIdBySubSet = IF(@id = id, @r := @r + 1, @r := (@id := id) - id)
ORDER BY
id, value;
نصائح أخرى
اكتب نص سريع للقيام بذلك. يجب أن يستغرق أقل من 10 خطوط من التعليمات البرمجية في PHP.
أعتقد أنك ستجد هذه المقالة مفيد. باختصار: لا يمكنك القيام بذلك في استعلام واحد بالضبط، ولكن يمكنك القيام بذلك في قسمين (قم بتحميل بياناتك إلى جدول جديد وتنفيذ عبارة إدراج).
لا تنتمي إلى StackOverflow