赞
踩
已经在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 表再次查询,此时是对两张不同的表进行查询与修改,解决上面问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。