我有HeidiSQL,我需要运行3MB查询,但我想用随机数替换某些文本/值。我该怎么做?
我需要更换它,因为有很多行。
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)
如果您使用的是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))
答案 1 :(得分:0)
运行您在问题中显示的INSERT INTO语句。 然后运行以下查询:
UPDATE creature
SET guid = REPLACE(guid, '@CGUID+', ROUND((RAND() * (999999-1))+1))
WHERE guid LIKE '@CGUID+%'