imsun 大佬有话说 : 2019-12-28 18:00:31
【不懂就要问】MySQL 替换随机数
UPDATE DedeCMS SET text=REPLACE(text,’文字’,ROUND((rand() * 500)))
结果发现了一个问题
就是所有的 文字 都被替换成同一个随机值,
我想要达到的是,文字被替换为1, 被替换为2,被替换为3….这样每个都随机。
请求大佬指明方向。
imsun 大佬有话说 : 2019-12-28 18:06:56
求助求助人工顶
woniu 大佬有话说 : 2019-12-28 18:09:27
呵呵 一个语句当然是统一替换
自己写存储过程吧,循环里面一条条更新即可
hnxzc 大佬有话说 : 2019-12-28 18:37:30
你这rand只有一次啊
imsun 大佬有话说 : 2019-12-28 20:03:27
woniu 大佬有话说 : 2019-12-28 18:09
呵呵 一个语句当然是统一替换
自己写存储过程吧,循环里面一条条更新即可 …
求助该怎么写…
woniu 大佬有话说 : 2019-12-28 20:14:57
imsun 大佬有话说 : 2019-12-28 20:03
求助该怎么写…
写个游标
然后在游标里面执行你的更新语句就可以了
自己去看 https://**blogs.com/horror/p/9520906.html
或者把你的表结构发上来
imsun 大佬有话说 : 2019-12-28 20:24:26
woniu 大佬有话说 : 2019-12-28 20:14
写个游标
然后在游标里面执行你的更新语句就可以了
ELIMITER //
DROP PROCEDURE IF EXISTS test;
CREATE PROCEDURE test()
BEGIN
DECLARE i INT;
SET i = 0;
REPEAT
UPDATE DedeCMS SET text=REPLACE(text,’文字’,ROUND((rand() * 500)))
SET i = i + 1;
UNTIL i > 51900 END REPEAT;
SELECT * FROM test;
END
//
CALL test();
DELIMITER ;
执行不起来。
我的表结构是
表名:ak_texts
结构:id itemid subtitle text page outid
主要换《 text》相关匹配的文字
woniu 大佬有话说 : 2019-12-28 20:42:58
本帖最后由 woniu 于 2019-12-28 20:47 编辑
imsun 大佬有话说 : 2019-12-28 20:24
执行不起来。
我的表结构是
老铁 你这样写肯定不行 我不是说了必须一行一行的更新
你表里的id是主键吗,不是的话自己改改
create procedure p3()
begin
declare ssid int; — 必须是主键
DECLARE done INT DEFAULT FALSE;
DECLARE my_cursor CURSOR FOR select id from ak_texts;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
open my_cursor;
xxoo: LOOP
fetch my_cursor into ssid;
if done then
leave xxoo;
END IF;
UPDATE ak_texts SET text=REPLACE(text,’文字’,ROUND((rand() * 500)))where id = ssid;
COMMIT;
end loop xxoo;
close my_cursor;
end
imsun 大佬有话说 : 2019-12-28 20:56:49
woniu 大佬有话说 : 2019-12-28 20:42
老铁 你这样写肯定不行 我不是说了必须一行一行的更新
你表里的id是主键吗,不是的话自己改改
id 是主键,运行错误了。
SQL 查询:
create procedure p3()
begin
declare ssid int;
MySQL 返回: 文档
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 3
woniu 大佬有话说 : 2019-12-28 20:58:24
本帖最后由 woniu 于 2019-12-28 20:59 编辑
imsun 大佬有话说 : 2019-12-28 20:56
id 是主键,运行错误了。
SQL 查询:
自己百度一下吧 只能给你提供思路
我也没写过mysql的,写过oralce的,只是道理是相同的