كيف يمكنني تحديث الحقول في الجدول مع سلاسل تم اختيارها عشوائيا من قائمة معروفة؟

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

  •  19-08-2019
  •  | 
  •  

سؤال

ولدي جدول يسمى "المباني" التي تحتوي على VARCHAR (50) حقل يسمى "الاستخدام". جدول بالفعل عدة آلاف من السجلات، إلا أن "استخدام" القيم كلها باطلة. أود أن تحديث هذه هذا الجدول مع القيم اختيارها عشوائيا من قائمة السلاسل <م> (على سبيل المثال. والمخازن والمكاتب والسوق، وتجارة التجزئة، ورشة عمل) . وأود أيضا أن يترك بعض هذه باطلة لمحاكاة استخدام العالم الحقيقي.

وكيف يمكنني تحديث حقل في الجدول مع سلاسل تم اختيارها عشوائيا من قائمة معروفة؟

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

المحلول

وهذا قد عمل لك:

BEGIN;
UPDATE Buildings SET Use = (ARRAY['warehouse', 'office', 'market', 'retail', 'workshop', NULL])[floor(random() * 6.0) + 1];
COMMIT;

نصائح أخرى

وانها ليست عشوائية، ولكن هذا هو وسيلة لطيفة وسهلة للقيام بذلك، شريطة أن يكون لديك توزيع موحد realtively معرفات:

UPDATE Buildings SET Use = 'warehouse' WHERE ID % 6 = 0
UPDATE Buildings SET Use = 'office'    WHERE ID % 6 = 1
UPDATE Buildings SET Use = 'market'    WHERE ID % 6 = 2
UPDATE Buildings SET Use = 'retail'    WHERE ID % 6 = 3
UPDATE Buildings SET Use = 'workshop'  WHERE ID % 6 = 4
UPDATE Buildings SET Use = NULL        WHERE ID % 6 = 5

وهذا هو تقريبا بالتأكيد سيكون أسهل وأسرع من نهج "عشوائي". ثم مرة أخرى، فإنه قد لا تكون عشوائية بما فيه الكفاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top