关于mysql数据库对一张数据表查询的同时进行增删改操作

时间:2021-06-05 00:49:59

已经在mysql数据库中创建好数据表

关于mysql数据库对一张数据表查询的同时进行增删改操作

在对mysql数据库操作的过程中遇到下面问题:

关于mysql数据库对一张数据表查询的同时进行增删改操作

You can’t specify target table ‘t_vip’ for update in FROM clause

本次操作是删除账户金额最高的那个用户,sql如下

DELETE FROM t_vip WHERE vip_money=(SELECT MAX(vip_money) FROM t_vip )

原因是因为mysql数据库不允许在查询一张数据表的同时对同一张数据表进行增删改的操作。

解决方案:

修改SQL语句:

DELETE FROM t_vip WHERE vip_money=(SELECT * FROM (SELECT MAX(vip_money) AS max_money FROM t_vip)AS a )

第一次查询找出了数据表中最大值,将这次结果取名为a 表,通过对a 表再次查询,此时是对两张不同的表进行查询与修改,解决上面问题。