文章详情页
mysql更新语句
浏览:198日期:2022-06-21 14:03:39
问题描述
下面的表:p_id是父id,old_id是以前的父id,现在需要把p_id的值改成id比如第一条数据,之前的父id是10,其实对应的是第二跳记录,所以更新后,p_id=2更新后的结果:
这样的更新语句sql如何写?需要做的事情:通过p_id找到old_id,这时候的id就是要更新的值;第一条记录p_id==10,p_id=old_id=10的是第二天记录,把p_id更新成2
问题解答
回答1:很久没写Mysql的查询操作了,不过我有个想法,对于上面表中的记录,p_id和old_id是在一张表中,既要做比较操作还要做更新操作。建议:
第一步:根据主表拆分一张临时表 tmp_id, old_tmp_id(对应主表中的old_id)
tmp_id old_tmp_id
1 30
2 10
3 20
第二步:左连接查询,where p_id == old_tmp_id, set p_id = tmp_id
回答2:表名test
update test t1 inner join test t2 on t1.p_id = t2.old_idset t1.p_id = t2.id
回答3:一条SQL弄不了,就放在事务里,更新两次吧
回答4:
UPDATE test t1INNER JOIN test t2 ON t1.p_id = t2.old_idSET t1.p_id = t2.id
相关文章:
1. 前端 - webpack如何打包script标签引入的代码2. css3 - 一个关于CSS雪碧图的问题3. 在bootstrap中怎么让浏览器缩小到一定大小时,里面的元素就不自适应屏幕大小,而是固定的大小。4. docker-machine添加一个已有的docker主机问题5. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题6. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?7. html - form 表单 用户名提示和错误提示分开显示?8. wordpress - nginx 反代 Varnish 走 Https ,WP后台 ‘您没有足够的权限访问该页面。’9. angular.js - 如何在指令里使用ng-click10. node.js - antdesign怎么集合react-redux对input控件进行初始化赋值
排行榜

网公网安备