我写错的如下:
UPDATE `members`
SET `headimg` = (select `path` from `rand_picture` order by rand())
目的是从rand_picture表中随机取出path去更新 member表中的headimg
因为子查询返回的是一个多维的结果所以要加limit 1的限制,但是结果会让member表把所有的headimg变成一样的,请教一些正确写法/
简单的说如何把B表中的字段随机的插入到A表中
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
http://sqlfiddle.com/#!2/b9703/1/0
不好意思,我尝试使用一条SQL也搞不定这个需求。所以我写了一个简单的存储过程来达到这个目的,希望对你有用。
如果真随机,可能一条sql搞不定。
可以先看下数据,考虑下member表的id到rand_picture的id的一个映射规则,然后类似这样写:
UPDATE
membersSET
headimg= (selectpathfromrand_picturewhere path_id = member_id)把path_id = member_id这个地方改一下,自己制定一个规则,这样可以做到每条都更别更新,但是如果你的where条件里面没有member表的某个字段做条件,更新出来肯定都是一样的。