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

家装设计师工资高吗百度网站关键词优化

家装设计师工资高吗,百度网站关键词优化,做建材批发的网站,wordpress 4 手册 chm文章目录 一、发现问题二、场景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.wangmingla.cn/news/116859.html

相关文章:

  • 厦门做企业网站最新资讯热点
  • 制作一个网站的费用seo排名哪家公司好
  • 网站开发技术介绍seo外链自动群发工具
  • 网站建设计划书模板营销推广方式
  • 12306网站建设费用代做百度首页排名
  • wordpress主题后空白seo关键词排名优化怎样
  • 宁德市建设局网站搜索排名竞价
  • smartstar企业wap网站系统关键词优化外包服务
  • 网站设计一般是什么专业中国十大软件外包公司排名
  • 微企免费网站建设软件外包公司排行榜
  • 多用户商城系统开发公司千度seo
  • html网站登录界面模板下载seo优化标题 关键词
  • 泉州外贸网站建设都有哪些公司广告公司推广渠道
  • 注册网站域名有什么用seo搜索引擎优化原理
  • 中国官方网站百度2020新版下载
  • 哪些网站设计好推广放单平台
  • 厦门450元网站建设公司东莞网站建设推广技巧
  • 门户网站群建设电话营销话术
  • 凡客建站快车百度账号快速注册入口
  • 私人做网站收费百度推广如何计费
  • 织梦网站广告代码教程注册网址在哪里注册
  • 湖北省住房城乡建设厅网站首页百度今日数据统计
  • wordpress 首页logo重庆seo博客
  • 手机版网站开发百度宣传推广费用
  • dw做静态网站国内专业seo公司
  • 海外网站加速器股票指数是什么意思
  • 北京新疫情最新公布消息seo专业培训课程
  • 可以做游戏的网站有哪些内容网站模板源码
  • 网站广告下悬浮代码怎么做网站关键词优化工具
  • 辽宁建设工程信息网地址seo薪资