2016-05-04 18 views
0

私はHeidiSQLを持っていますが、実行する必要がある3MBのクエリがありますが、特定のテキスト/値を乱数で置き換えたいと思っています。どうすればいい?SQLでテキストを乱数に置き換える方法は?

と多くの行があるため、置き換える必要があります。

INSERT INTO creature (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`) VALUES 
('@CGUID+0', 83855, 1116, 0, 0, 3, '0', 0, 0, 0, 1504.222, -2147.853, 90.73972, 0.6455684, 7200, 10, 0, 0, 0, 1, 0, 0, 0, 21463), -- 83855 (Area: 7120) (possible waypoints or random movement) 
('@CGUID+1', 81244, 1116, 0, 0, 3, '0', 0, 0, 0, 1514.845, -2106.458, 92.60474, 2.908402, 7200, 0, 0, 0, 0, 0, 0, 0, 0, 21463), -- 81244 (Area: 7120) (Auras: 163908 - 163908) 
('@CGUID+2', 81244, 1116, 0, 0, 3, '0', 0, 0, 0, 1484.29, -2122.714, 92.58028, 1.293478, 7200, 0, 0, 0, 0, 0, 0, 0, 0, 21463), -- 81244 (Area: 7120) (Auras: 163908 - 163908) 

基本的に@CGUID +がどこに置き換えられていて、ランダム番号(好ましくは1-999999の間)を追加したいと思います。したがって、それはのようになり、現在の数に追加します。すべての最後の桁が変更されていない

「4820940」 「2850331」 「2854962」

注、それが交換されていますちょうど最初のテキストです。しかし、私はそれをランダムにする必要があります。

+0

データをスクランブルする必要があるため、確認する必要があります。 –

+0

また、HeidiSQLは唯一のツールなので、プロファイリング/管理しているデータベースを知ることができますか?MySQL、SQLServer、Postgres? –

+0

@Chrisようこそ。私たちはあなたが投稿するときにかなり多くの情報を提供する必要があります。あなたのクエリはどのように見えますか?どのDBにアクセスしようとしていますか?あなたは何を試しましたか? –

答えて

0

あなたはMySQLやSQLServerのを使用している場合は、それを行うための方法は、次のようになります:

SELECT Replace(real_field1,'value to be replaced','new value') as scrambled_field1 
FROM <any table> 
WHERE <filter> 

あなたのクエリを表示する場合、私はあなたを助けることができます。

SQLコマンドに基づいて、このようなものを試すことができます。私は、構文を表示するには、クエリを簡素化しています:あなたは、あなたの質問に示されているよう

insert into table(column1) values (REPLACE('@CGUID+1','@CGUID',FLOOR(RAND()*(99999-1)+1)) 
+0

はい私はMySQLを使用しています。しかし、あなたは私の知識の欠如を私に許す必要があります。私はそこに何を記入するのかは分かりません。私は基本的に '@ CGUID +'というテキストを置き換えたいのですが、5k行があり、それらのすべてに乱数を持たせたいと思います。 – Chris

+0

あなたの質問にあなたの質問を載せ、あなたがしたい交換のいくつかの例を示してください。 –

+0

できません。クエリは3MBで、長すぎます。 5990行あります。私はそれを投稿することができますか? – Chris

0

INSERT INTOステートメントを実行します。 その後、次のクエリを実行します。

UPDATE creature 
    SET guid = REPLACE(guid, '@CGUID+', ROUND((RAND() * (999999-1))+1)) 
    WHERE guid LIKE '@CGUID+%' 
関連する問題