MySQL出现You can‘t specify target table for update in FROM clause错误的解决方法
阅读数:101 评论数:0
跳转到新版页面分类
数据库
正文
一、原因
https://dev.mysql.com/doc/refman/8.0/en/update.html
不能在同一语句中,先select出同一表中的某些值,再依据这些值秋update这个表。
例如:
UPDATE t_message
SET content = 'Hello World'
WHERE id IN (
SELECT min(id) FROM t_message GROUP BY uid
);
二、解决办法
通过一个中间临时表。
UPDATE message
SET content = 'Hello World'
WHERE id IN (
SELECT min_id FROM (
SELECT min(id) AS min_id FROM t_message GROUP BY uid
) AS a
);
相关推荐
Centos7的yum源中没有mysql,为了解决这个问题,我们需要先下载mysql的repo源。
一、下载mysql的repo源并安装
wget http://repo.mysql.com/mysq
如果主库已经投入使用了,此时如果需要主从同步,需要导出所表结构和数据,然后导入到从库中。这时需要注意修改/var/lib/mysql/auto.cnf中uuid。
master配
一、事务的ACID
1、Atomicity原子性
Transactions are often composed of multiple statements. Atomicity guarantee
一、登录mysql
mysql --version
-查看Mysql版本
mysql -h hostname -u username -p
-h:运行mysql服务器的机器,如果正在该机器上运行此命令
一、语法
select [optioins] items
[into file_details]
from tables
[where conditions]
[group by gr
一、语法
update [low_priority] [ignore] tablename
set column1=expression1,...
[where condition]
[order b
一、语法
1、基本语法
alter table [ignore] tablename alteration [,alteration...]
(1)ignore,如果会导致唯一键重复,则这些操作将自动