当前位置: 首页 > news >正文

网站上做地图手机上显示在线资源链接

网站上做地图手机上显示,在线资源链接,网吧网络组建方案,可靠的手机做任务网站文章目录 一、发现问题二、场景1:在where条件中查询了修改表的数据三、场景2:在set语句中查询了修改表的数据 一、发现问题 在一次准备处理历史数据sql时,出现这么一个问题:You cant specify target table 表名 for update in FR…

文章目录

  • 一、发现问题
  • 二、场景1:在where条件中查询了修改表的数据
  • 三、场景2:在set语句中查询了修改表的数据

一、发现问题

在一次准备处理历史数据sql时,出现这么一个问题:You can't specify target table '表名' for update in FROM clause,大致的意思就是:不能在同一张表中先select再update。

在此进行一下复盘沉淀,使用测试sql复现当时的场景(mysql是8版本),准备测试数据:

CREATE TABLE `student` (`id` int NOT NULL,`name` varchar(255) DEFAULT NULL,`address` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;INSERT INTO `athena_opencourse`.`student`(`id`, `name`, `address`) VALUES (1, '张三', '北京');
INSERT INTO `athena_opencourse`.`student`(`id`, `name`, `address`) VALUES (2, '李四', '上海');

二、场景1:在where条件中查询了修改表的数据

update student set address = '杭州'
where id in (select id from student where name = '张三');delete from  student
where id in (select id from student where name = '张三');

此时会提示:1093 - You can’t specify target table ‘student’ for update in FROM clause

解决方式:在where子句中再加一层,使其成为临时表:

update student set address = '杭州'
where id in (select tmp.id from (select id from student where name = '张三') tmp);

三、场景2:在set语句中查询了修改表的数据

update student set address = (select address from student where name = '李四')
where name = '张三';

此时,一样的报错:> 1093 - You can’t specify target table ‘student’ for update in FROM clause

解决方式同上,查询时再加一层,使其成为临时表:

update student set address = (select tmp.address from (select address from student where name = '李四') tmp)
where name = '张三';

或者使用update join的方案:

update student s1 ,student s2 
set s1.address = s2.address
where s1.name = '张三' and s2.name = '李四';

惊呆了有木有!使用update join语法,可以很轻松的实现跨表的数据修改。

当然,上面的例子中,两个表之间的数据并没有关联关系,如果有关联关系的话,比如说同一个id更新相同的数据,可以使用left join on的语法:

update student s1 
left join student s2 on s1.id = s2.id
set s1.address = s2.name;

http://www.zhongyajixie.com/news/40532.html

相关文章:

  • 省 两学一做 专题网站百度应用商店下载安装
  • 做 耽美小说下载网站有哪些最新全国疫情实时大数据
  • 南京移动网站建设制作一个简单的html网页
  • 专业做网站较好的公司广州大丰seo排名
  • 网站seo收费小程序开发需要哪些技术
  • 沈阳中小企业网站制作百度网站推广一年多少钱
  • 指定图片做logo网站外包网站
  • 在阿里云做视频网站需要什么百度seo是啥
  • 芜湖网站建设兼职广州网络推广外包
  • 网站建设和微信小程序网站运营一个月多少钱
  • 企业解决方案漫画seo建站教学
  • 做网站域名大概多少钱实体店怎么推广引流
  • 做国外销售都上什么网站创建属于自己的网站
  • 做sf网站seo案例分享
  • 网站建设需要条件跟我学seo从入门到精通
  • phpmysql网站模板网站免费搭建
  • 人人商城程序做的网站打不开关键词排名怎么查
  • 手机免费在线搭建网站百度浏览器官网下载并安装
  • 2015网站排名5118大数据平台官网
  • 龙华建网站多少钱企业网站推广公司
  • 网站建设电商百度提交
  • 网站的尾页要怎么做口碑营销的概念
  • 网站做多个产品怎样在百度上做广告
  • 如何用微信支付购物网站网站seo排名公司
  • 陕西金顶建设公司网站网络营销seo培训
  • 深圳网站建设选哪家好网站建设价格
  • 北海建设厅网站私域流量和裂变营销
  • 微信链接网站怎么做百度官方网站入口
  • 营销型网站建设推广广州今日头条新闻最新
  • 哈尔滨 网站建设google关键词优化