heidi如何在SQL中用随机数替换文本



我有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'

请注意,最后一个数字并没有改变,它只是被替换的第一个文本。但我需要它是随机的。

如果您使用的是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))

如问题所示运行INSERT INTO语句。然后运行以下查询:

UPDATE creature
    SET guid = REPLACE(guid, '@CGUID+', ROUND((RAND() * (999999-1))+1))
    WHERE guid LIKE '@CGUID+%'

最新更新