既知のリストからランダムに選択された文字列でテーブルのフィールドを更新するにはどうすればよいですか?
-
19-08-2019 - |
質問
<!> quot; buildings <!> quotという名前のテーブルがあります。 <!> quot; use <!> quot;という名前のvarchar(50)フィールドが含まれています。テーブルにはすでに数千のレコードがありますが、<!> quot; use <!> quot;値はすべてヌルです。これらの文字列のリストからランダムに選択された値でこれらのテーブルを更新したいと思います(例:倉庫、オフィス、市場、小売、ワークショップ)。また、これらのヌルの一部を残して、実際の使用をエミュレートします。
既知のリストからランダムに選択された文字列でテーブルのフィールドを更新するにはどうすればよいですか?
解決
これはあなたに役立つかもしれません:
BEGIN;
UPDATE Buildings SET Use = (ARRAY['warehouse', 'office', 'market', 'retail', 'workshop', NULL])[floor(random() * 6.0) + 1];
COMMIT;
他のヒント
ランダムではありませんが、IDの現実的に均一な分布があれば、これはそれを行うための素晴らしく簡単な方法です:
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
これは、ほぼ確実に<!> quot; random <!> quot;より簡単かつ高速になります。アプローチ。繰り返しますが、ランダムではない可能性があります。
所属していません StackOverflow