问答一下,轻松解决,电脑应用解决专家!
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win10/Win11
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascriptLinux系统
PHP教程CSS教程XML教程

mysql使用update修改查询出来的结果集

更新时间:2021-08-30 16:10 作者:佚名点击:

1.应用情景

把表game字段kg的值中iw字符串去掉。

2.错误写法

update game set kg=replace(kg,'iw','') where kg in (select kg from game where kg like '%iw%');

会报错:1093 - You can't specify target table。update语句中包含的子查询的表和update的表为同一张表时,会报错。

3.解决方法

给查询加别名,用中间表来实现不是对同一表作操作。

4.正解

update game set kg=replace(kg,'iw','') where kg in (select * from(select kg from game where kg like '%iw%') tempTable);

5.扩展

将tail表中number为8的qty字段,修改成7,要通过临时表实现之。

UPDATE tail SET qty="7" WHERE id= (SELECT * from (SELECT id FROM tail WHERE number="8") tempTable)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容