既知のリストからランダムに選択された文字列でテーブルのフィールドを更新するにはどうすればよいですか?

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

  •  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;より簡単かつ高速になります。アプローチ。繰り返しますが、ランダムではない可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top