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

mysql中You can’t specify target table for update in FROM clause错误

mysql中You can’t specify target table for update in FROM clause错误

You cannot update a table and select directly from the same table in a subquery.

mysql官网中有这句话,我们不能在一个语句中先在子查询中从某张表查出一些值,再update这张表。

比如:

mysql> UPDATE items
SETretail = retail * 0.9
WHEREid IN (SELECTidFROMitemsWHEREretail / wholesale >= 1.3AND quantity > 100);

这个语句执行的时候会报错: ERROR 1093 (HY000): You can't specify target table 'items' for update in FROM clause

针对这种报错,有两种方法解决:多表更新和中间表

方法一 多表更新

我们可以通过多表更新来解决这个问题,连表时一张表是实际要更新的表,另一长表是原来的子查询派生出来的表,我们使用别名引用派生表。比如上面的例子中的sql,可以改写成如下写法:

update items,
(SELECTidFROMitemsWHEREretail / wholesale >= 1.3AND quantity > 100
) a
setretail = items.retail * 0.9
whereitems.id = a.id

方法二 中间表

中间表的含义是将子查询再包一层,比如上面的语句可以改写成:

UPDATE items
SETretail = retail * 0.9
WHEREid IN (selectidfrom(SELECTidFROMitemsWHEREretail / wholesale >= 1.3AND quantity > 100) aa);

需要注意的是,mysql优化器可能会优化子查询,这时候仍然会抛出错误。我们可以使用optimizer_switch变量关闭这种行为;

#将derived_merge标志设置为off
SET optimizer_switch='derived_merge=off';

derived_merge是MySQL中的查询优化技术之一,用于控制派生表合并(derived merge)优化的行为。 在MySQL中,当执行复杂的查询时,可能会涉及到派生表,即在查询中使用子查询作为临时表。派生表合并是一种优化技术,它尝试将多个派生表合并为一个更简单的查询结构,以提高查询性能

参考: https://fanyi.youdao.com/index.html#/ https://dev.mysql.com/doc/refman/8.0/en/update.html

图片

                                                        点个“赞 or 在看” 你最好看!

                                                                喜欢,就关注我吧!

图片

相关文章:

mysql中You can’t specify target table for update in FROM clause错误

mysql中You can’t specify target table for update in FROM clause错误 You cannot update a table and select directly from the same table in a subquery. mysql官网中有这句话,我们不能在一个语句中先在子查询中从某张表查出一些值,再update这张表…...

Linux Vim最全面的教程

Vim 是一个非常强大的文本编辑器,它在 Linux 环境中尤其受欢迎。Vim 支持高度定制,并且拥有丰富的功能,包括多级撤销、宏、脚本语言支持等。下面是关于 Vim 的一个较为全面的教程。 Vim 的启动 要启动 Vim,你可以在终端中输入 v…...

setsockopt选项对tcp速度

GPT-4 (OpenAI) 每个setsockopt调用都涉及到一个套接字描述符,一个指定网络层的常数(如IPPROTO_IP, IPPROTO_TCP, IPPROTO_IPV6, SOL_SOCKET等),一个指定需配置的选项的常数,一个指向配置值的指针,以及那个…...

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号3

基础认证题库请移步:HarmonyOS应用开发者基础认证题库 注:有读者反馈,题库的代码块比较多,打开文章时会卡死。所以笔者将题库拆分,单选题20个为一组,多选题10个为一组,题库目录如下,…...

bool数组的理解和应用[C++]

文章目录 bool数组的用法bool数组的定义声明bool数组的初始化访问和修改数组元素遍历数组 运用bool数组简单代码 在今天做题中发现了bool类不仅能用于函数类型还能用于数组类型,好奇查了查发现bool还有很多用处:基本变量,在枚举类型中会用到&…...

JavaScript模拟滑动手势

双击回到顶部 左滑动 右滑动 代码展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Gesture…...

Text Control 控件教程:使用 .NET C# 中的二维码和条形码增强文档

QR 码和条形码非常适合为文档和 PDF 文件增加价值&#xff0c;因为它们提供轻松的信息访问、验证信息、跟踪项目和提高交互性。条形码可以弥补纸质或数字人类可读文档与网络门户或网络应用程序中的数字信息之间的差距。大多数用户都熟悉 QR 码和条形码&#xff0c;它们在许多过…...

最新爆火的开源AI项目 | LivePortrait 本地安装教程

LivePortrait 本地部署教程&#xff0c;强大且开源的可控人像AI视频生成 1&#xff0c;准备工作&#xff0c;本地下载代码并准备环境&#xff0c;运行命令前需安装git 以下操作不要安装在C盘和容量较小的硬盘&#xff0c;可以找个大点的硬盘装哟 2&#xff0c;需要安装FFmp…...

揭秘Django与Neo4j:构建智能知识图谱的终极指南

揭秘Django与Neo4j:构建智能知识图谱的终极指南 前言 图是一种用于对象之间的成对关系进行建模的数学结构。 它由两个主要元素组成:节点和关系。 节点:节点可以看作是传统数据库中的记录。每个节点代表一个对象或实体,例如一个人或一个地方。节点按标签分类,这有助于根…...

项目一缓存商品

文章目录 概要整体架构流程技术细节小结 概要 因为商品是经常被浏览的,所以数据库的访问量就问大大增加,造成负载过大影响性能,所以我们需要把商品缓存到redis当中,因为redis是存在内存中的,所以效率会比MySQL的快. 整体架构流程 技术细节 我们在缓存时需要保持数据的一致性所…...

SEO与数据中心代理IP的结合能带来哪些便利?

本文将探讨将SEO与数据中心代理IP结合所带来的好处&#xff0c;以及如何利用这种组合来提升网站在搜索引擎中的排名和可见性。 1. 数据中心代理IP的作用和优势 数据中心代理IP指的是由数据中心提供的IP地址&#xff0c;用于隐藏真实服务器的位置和身份。与其他类型的代理IP相…...

《昇思25天学习打卡营第6天|ResNet50图像分类》

写在前面 从本次开始&#xff0c;接触一些上层应用。 本次通过经典的模型&#xff0c;开始本次任务。这里开始学习resnet50网络模型&#xff0c;应该也会有resnet18&#xff0c;估计18的模型速度会更快一些。 resnet 通过对论文的结论进行展示&#xff0c;说明了模型的功能&…...

Activiti 6 兼容openGauss数据库bytes类型不匹配

当前有个项目需要做国产调研&#xff0c;需要适配高斯数据库&#xff0c;项目启动的时候&#xff0c;提示column "bytes_" is type bytea but expression is of type blob byte_字段是act_ge_bytearray表的&#xff0c;openGauss里的类型是bytea&#xff0c;类型是匹…...

缓存技术:提升性能与效率的利器

在当今数字化时代&#xff0c;软件应用的性能与响应速度成为了衡量其成功与否的重要标准之一。随着数据量的爆炸性增长和用户需求的日益多样化&#xff0c;如何高效地处理这些数据并快速响应用户请求成为了软件开发中亟待解决的问题。缓存技术&#xff0c;作为提升系统性能、优…...

LeetCode 637, 67, 399

文章目录 637. 二叉树的层平均值题目链接标签思路代码 67. 二进制求和题目链接标签思路代码 399. 除法求值题目链接标签思路导入value 属性find() 方法union() 方法query() 方法 代码 637. 二叉树的层平均值 题目链接 637. 二叉树的层平均值 标签 树 深度优先搜索 广度优先…...

如何压缩视频大小不改变画质?这5个视频压缩免费软件超好用!

如何压缩视频大小不改变画质&#xff1f;随着生活的水平逐步提高&#xff0c;视频流媒体服务越来越受欢迎。提供简短而引人注目的视频来展示您的产品或服务已成为一种出色的营销手段。然而&#xff0c;当您要准备导出最终视频时&#xff0c;可能会面临一个常见问题&#xff1a;…...

深入理解 Java 虚拟机第三版(周志明)

这次社招选的这本作为 JVM 资料查阅&#xff0c;记录一些重点 1. 虚拟机历史 Sun Classic VM &#xff1a;已退休 HotSpot VM&#xff1a;主流虚拟机&#xff0c;热点代码探测技术 Mobile / Embedded VM &#xff1a;移动端、嵌入式使用的虚拟机 2.2 运行时数据区域 程序计…...

算法 定长按组翻转链表

一、题目 已知一个链表的头部head&#xff0c;每k个结点为一组&#xff0c;按组翻转。要求返回翻转后的头部 k是一个正整数&#xff0c;它的值小于等于链表长度。如果节点总数不是k的整数倍&#xff0c;则剩余的结点保留原来的顺序。示例如下&#xff1a; &#xff08;要求不…...

安装nfs和rpcbind设置linux服务器共享磁盘

1、安装nfs和rpcbind 1.1 检查服务器是否安装nfs和rpcbind&#xff0c;执行下命令&#xff0c;检查服务器是否安装过。 rpm -qa|grep nfs rpm -qa|grep rpcbind 说明服务器以安装了&#xff0c;如果没有就需要自己安装 2、安装nfs和rpcbind 将rpm安装包&#xff1a; libtirpc-…...

物联网在电力行业的应用

作者主页: 知孤云出岫 这里写目录标题 作者主页:物联网在电力行业的应用简介主要应用领域代码案例分析1. 智能电表数据采集和分析2. 设备监控和预测性维护3. 能耗管理和优化4. 电力负载预测5. 分布式能源管理6. 电动汽车充电管理7. 电网安全与故障检测 物联网在电力行业的应用…...

cv_unet_image-colorization模型压缩与量化:面向移动端的部署优化

cv_unet_image-colorization模型压缩与量化&#xff1a;面向移动端的部署优化 想把那个能把黑白照片变彩色的AI模型塞进手机里&#xff1f;这听起来挺酷&#xff0c;但实际操作起来&#xff0c;你会发现它又大又慢&#xff0c;手机根本跑不动。这就像你想把一台高性能游戏电脑…...

VBench评测基准全面解析:如何精准评估视频生成模型性能

1. VBench评测基准&#xff1a;视频生成模型的"体检中心" 想象一下你去医院做全身体检&#xff0c;医生会用不同仪器检查你的视力、听力、心肺功能等各项指标。VBench就是给视频生成模型做全面体检的"三甲医院"&#xff0c;它能从16个维度给模型打分&#…...

3步解决Windows驱动臃肿难题:DriverStore Explorer让系统空间释放效率提升80%

3步解决Windows驱动臃肿难题&#xff1a;DriverStore Explorer让系统空间释放效率提升80% 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 诊断系统存储异常 "为什么我的C盘…...

使用Dependency Check命令行工具高效检测Java项目中的安全漏洞

1. 为什么Java开发者需要关注依赖库安全&#xff1f; 如果你是一名Java开发者&#xff0c;可能经常遇到这样的情况&#xff1a;项目运行得好好的&#xff0c;突然某天系统被入侵了&#xff0c;排查半天才发现是某个第三方库存在安全漏洞。这种情况在现实开发中并不少见&#xf…...

RTX 4090显卡福利:Qwen2.5-VL-7B-Instruct轻量化部署,支持对话历史管理

RTX 4090显卡福利&#xff1a;Qwen2.5-VL-7B-Instruct轻量化部署&#xff0c;支持对话历史管理 1. 项目概述 Qwen2.5-VL-7B-Instruct是阿里通义千问推出的多模态大模型&#xff0c;专为视觉交互任务优化。本教程将展示如何在RTX 4090显卡上实现该模型的轻量化部署&#xff0c…...

Qwen2.5-VL-7B-Instruct镜像免配置教程:开箱即用的视觉语言推理平台

Qwen2.5-VL-7B-Instruct镜像免配置教程&#xff1a;开箱即用的视觉语言推理平台 1. 开篇介绍 你是否遇到过这样的场景&#xff1a;需要快速搭建一个能同时理解图片和文字的AI系统&#xff0c;却被复杂的配置步骤劝退&#xff1f;今天我要介绍的Qwen2.5-VL-7B-Instruct镜像&am…...

节能模式:OpenClaw+nanobot的间歇性任务调度技巧

节能模式&#xff1a;OpenClawnanobot的间歇性任务调度技巧 1. 为什么需要节能模式 去年夏天&#xff0c;我的电费账单突然飙升。排查后发现&#xff0c;那台24小时运行OpenClaw的工作站竟然是耗电大户——它持续调用着本地部署的Qwen大模型&#xff0c;GPU风扇昼夜不停地呼啸…...

Qwen3-ASR-0.6B WebUI实战:中文方言自动识别与结果导出操作

Qwen3-ASR-0.6B WebUI实战&#xff1a;中文方言自动识别与结果导出操作 1. 快速了解Qwen3-ASR-0.6B语音识别模型 Qwen3-ASR-0.6B是一个轻量级但性能强大的语音识别模型&#xff0c;专门为实际应用场景设计。这个模型只有6亿参数&#xff0c;但识别效果却相当出色&#xff0c;…...

s2-pro效果展示:多说话人语音合成(同一模型切换不同音色)

s2-pro效果展示&#xff1a;多说话人语音合成&#xff08;同一模型切换不同音色&#xff09; 1. 专业级语音合成效果展示 s2-pro作为Fish Audio开源的专业级语音合成模型&#xff0c;其最惊艳的能力在于同一模型支持多种音色切换。通过上传不同的参考音频&#xff0c;模型可以…...

毫米波雷达测速的“火眼金睛”:从汽车ACC到手势识别,Doppler FFT如何分辨不同速度的目标?

毫米波雷达测速的“火眼金睛”&#xff1a;从汽车ACC到手势识别&#xff0c;Doppler FFT如何分辨不同速度的目标&#xff1f; 在自动驾驶汽车的前方&#xff0c;一辆卡车突然减速&#xff0c;而右侧车道有摩托车正在加速超车——毫米波雷达如何在这复杂的场景中&#xff0c;准确…...