استعلام MySQL لتعيين رقم عشوائي فريد لكل صف

StackOverflow https://stackoverflow.com/questions/602952

  •  03-07-2019
  •  | 
  •  

سؤال

أرغب في إرفاق عمود بجدولي والذي سيكون رقمًا عشوائيًا من قائمة تسلسلية = لعدد الصفوف.

لذا، إذا كان طاولتي 999 صفًا, ، ثم سيتم تخصيص الأرقام من 1 إلى 999 بشكل عشوائي وفريد.

الآن، اعتقدت أنه يمكنني إضافة TempRandomColumn=Rand() الوهمية، والفرز حسب ذلك وإضافة الأرقام بالتسلسل باستخدام PHP.ولكن هذا يعني 999 عبارة MySQL.

هل هناك طريقة للقيام بذلك باستخدام عبارة MySQL واحدة؟

شكرا على أي مؤشرات.

هل كانت مفيدة؟

المحلول

SET @r := 0;
UPDATE  items2
SET     author_id = (@r := @r + 1)
ORDER BY
        RAND()

نصائح أخرى

SET @i=1;
SELECT t.*, @i:=@i+1 as RAND_NUM FROM your_table t ORDER BY RAND();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top