带子查询的 MySql 更新语句

标签 mysql sql database mysql-workbench

请看一下我在 MySql Workbench 中写的这条语句:

update customer set flag = 1
where id in (select id from customer
group by phoneNumber
having count(phoneNumber) > 1);

显示以下消息:

Error Code: 1093. You can't specify target table 'customer' for update in FROM clause

我做错了什么?

最佳答案

尝试一下:

  update customer set flag = 1
  where id in (select * from (select id from customer
  group by phoneNumber
  having count(phoneNumber) > 1)t ) ;

关于带子查询的 MySql 更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24436549/

相关文章:

mysql - 多个插入和选择到单个查询中

php - 如何通过 MYSQL/PHP 将 .sql.gz 文件导入我的数据库? (不是命令行)

php - 无法以注册用户身份登录(php 和 mysql)

mysql - 如何加入同一列两次?

sql - 如何在TSQL中的表中输入日期? (将数据类型 varchar 转换为 datetime 时出错)

php - 数据不会保存到 MySQL 数据库中

MySQL 用 LEFT JOIN IFNULL 替换 UNION

java - 如果某些字段的值已知,则在java中查询hbase

Mysql:搜索字符串 '> <img'的一部分并将其替换为 '><img'

mysql - 如何正确处理 RDBMS 中的更新/删除操作?