SQL小记之MySQL的update
2016-05-05 15:18
633 查看
工作中有需求要将MySQL数据库某表的数据做update,显少涉及MySQL数据库的工作,略显笨拙,baidu之后,完成了工作,记下以备后用:
单表update涉及多次自连接查询
SQL> update tb_jyx_sys_area a set a.areaFullName=
(select b.fullname from (select a1.areaId,CONCAT(a2.areaFullName,'/',a1.areaName) fullname from
tb_jyx_sys_area a2,tb_jyx_sys_area a1 where a1.`level` = 3 and a1.parentId = a2.areaId)b
where b.areaid=a.areaId) where a.`level`=3;
2.单表update涉及JION、group by,having
SQL> update tb_jyx_sys_area b join (select a.areaId FROM tb_jyx_sys_area a
left join tb_jyx_sys_area a1
on a.areaId = a1.parentId
GROUP BY a.areaId,a.areaName
having count(a1.areaId) = 0)c on b.areaid=c.areaId set b.isTerminal=1 ;
单表update涉及多次自连接查询
SQL> update tb_jyx_sys_area a set a.areaFullName=
(select b.fullname from (select a1.areaId,CONCAT(a2.areaFullName,'/',a1.areaName) fullname from
tb_jyx_sys_area a2,tb_jyx_sys_area a1 where a1.`level` = 3 and a1.parentId = a2.areaId)b
where b.areaid=a.areaId) where a.`level`=3;
2.单表update涉及JION、group by,having
SQL> update tb_jyx_sys_area b join (select a.areaId FROM tb_jyx_sys_area a
left join tb_jyx_sys_area a1
on a.areaId = a1.parentId
GROUP BY a.areaId,a.areaName
having count(a1.areaId) = 0)c on b.areaid=c.areaId set b.isTerminal=1 ;
相关文章推荐
- MySQL输入错误后如何取消
- 基于mysql全文索引的深入理解
- 使用MySQL
- MYSQL中的常用工具
- tornado的mysql数据库操作
- mysql: 三个范式
- 测试mysql的innodb引擎的锁表
- 安装MySQL的心得
- 忘记mysql密码操作
- 获取mysql的当前插入的id
- MySQL的IF函数
- mysql 导出数据库部分字段或部分数据
- MYSQL必知必会读书笔记第十和十一章之使用函数处理数据
- MYSQL必知必会读书笔记第八章之使用通配符进行过滤
- MySQL 修改表结构
- mysql mysqldump只导出表结构或只导出数据的实现方法
- mysql 无法启动 1067
- MYSQL必知必会读书笔记第七章之数据过滤
- mysql学习笔记(window下简单使用+Navict)
- mysql中tinyint(1)与tinyint(2)的区别