MYSQL中怎么从指定的几个字符串中随机挑选一个替换原有字符串

比如我数据库表a中有一个字段b,里边有几条记录里都包括有“XXX张三”,现在我要把张三随机替换为张三、李四、王五、赵六,这个应该怎么替换?... 比如我数据库表a中有一个字段b,里边有几条记录里都包括有“XXX张三”,现在我要把张三随机替换为张三、李四、王五、赵六,这个应该怎么替换? 展开
 我来答
木_叶_儿
2019-10-13 · TA获得超过423个赞
知道小有建树答主
回答量:301
采纳率:63%
帮助的人:75.6万
展开全部

create table names(id int,name varchar(10));

insert into names values(1,'张三')

insert into names values(2,'李四')

insert into names values(3,'王五')

insert into names values(4,'赵六')

select replace(b,'张三',t2.name) b from 

(select ceiling(rand()*5) id,b from a) t1

left join

(select id,name from names) t2

on t1.id=t2.id

我没有测试,可能有些小问题,但思路应该是对的

  1. 给随机姓名编号

  2. a表用随机数生成编号列,对应姓名编号

  3. 关联2个表,并替换相应字段

追问
非常感谢你的回答,因为我本身对代码不熟,这段代码执行的时候不成功。有几个问题我没有弄明白,t1跟t2是临时生成的吗,left join是什么用呢
追答
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。有join,inner join,left join,right join,full join。可以搜索sql教程学习一下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式