下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国cms同一张数据表无法同时进行select和update数据操作的优化

557 2021-04-26 04:02:14

收藏
在少部分应用场景中,我们需要选中表中的指定元素进行更新操作。如果元素固定,那么执行肯定没问题。但如果元素也需要选取,则执行会报错。因为同一张表上,你不能先select了再执行update操作。

但如果必须这样操作,是否可行呢?
 

案例还原

更改帝国CMS栏目ID=583的下级栏目模板ID,执行update命令,用下面SQL语句,没毛病:
UPDATE `phome_enewsclass` SET `listtempid` = 2 WHERE bclassid = 583;

我要更改帝国CMS栏目ID=583的下下级栏目模板ID,执行update+select,用下面的SQL语句:
UPDATE `phome_enewsclass` SET `listtempid` = 2 WHERE bclassid in (SELECT classid FROM `phome_enewsclass` WHERE bclassid = 583)

此时执行就会报错:#1093 - You can't specify target table 'phome_enewsclass' for update in FROM clause,意思是在同一张表上,你不能先select了再执行update操作。
 

案例优化

改用下面SQL语句,可以修改指定栏目下的第三级栏目的模板ID:
UPDATE `phome_enewsclass` AS A INNER JOIN (SELECT classid FROM `phome_enewsclass` WHERE bclassid in(SELECT classid FROM `phome_enewsclass` WHERE bclassid = 583)) AS B ON A.classid = B.classid SET A.listtempid = 2

这样,我们就实现了同一张数据表,既做select操作,又做update操作。感谢网友提供的思路与参考。

世上无难事,只要肯攀登。

如果你心心念念一个问题许久,一直坚持去寻找答案,那么你一定会找出解决方案。这是鸥哥用很长时间的坚持后数次证明出来的道理。

本文地址:https://xzo.com.cn/develop/empire/851.html

有帮助,很赞!

信息来源:网络
导出教程 下载word版教程
发表评论 共有条评论
  • 隐藏的大佬 2021-05-10 16:33:28评论 #沙发#

    有人测试过吗,是否可以实现?

关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS标签伪静态美化为/tags-100-0.html的形式(去掉etagid)
帝国CMS标签伪静态美化为/tags-100-0.html的形式(去掉etagid)

帝国cms简单修改实现TAGS以TAGID的方式伪静态,修改后的地址形式如:/tags-100-...

14 816
帝国CMS7.5默认伪静态规则大全(.htacces+nginx+web.config)
帝国CMS7.5默认伪静态规则大全(.htacces+nginx+web.config)

帝国CMS7.5默认伪静态规则大全(.htacces+nginx+web.config)提供了多种服务器...

1 627
帝国cms怎样压缩静态页面代码?
帝国cms怎样压缩静态页面代码?

静态页面代码压缩一下可提高网站加载速度,如果程序非常复杂的话,可以节约带宽...

3 525
帝国cms开发json数据接口调用栏目信息
帝国cms开发json数据接口调用栏目信息

json数据由于其高效、强兼容性的特质受到许多开发者的青睐,帝国cms开发一个...

0 666
帝国cms删除文章时不删除该文章所属的附件
帝国cms删除文章时不删除该文章所属的附件

帝国cms删除文章时往往非常彻底,不仅删除了数据库里的文章信息、生成的页面,...

0 546
帝国cms把自己ip禁止访问了怎么办?
帝国cms把自己ip禁止访问了怎么办?

帝国cms有禁止ip访问的功能,但如果不小心禁止了自己的ip,或是操作失误导致所...

0 793
帝国cms防火墙拦截会员投稿关键词无效怎么办?
帝国cms防火墙拦截会员投稿关键词无效怎么办?

帝国cms拦截关键词可以在用户投稿输入指定关键词后进行拦截,并变成白屏。功...

3 512
帝国cms怎样修改系统模型ID
帝国cms怎样修改系统模型ID

帝国cms默认是不允许修改系统模型ID的,因为一旦修改牵扯较大。那么,如果一定...

0 867
推荐插件
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1263
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 665
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1413
帝国cms自动给正文关键词添加tag内链
帝国cms自动给正文关键词添加tag内链

帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...

0 951
帝国cms联想词搜索高级搜索插件下载
帝国cms联想词搜索高级搜索插件下载

帝国CMS自带的搜索功能虽然强大,但也有很强的局限性 -- 必须关键词完全匹配...

0 902
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...

0 621
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 580
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 898
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入