mysql修改指定记录_mysql修改5条记录中某条记录的问题

匿名用户

1级

2011-02-12 回答

mysql> select * from pla;

+------+------+-------+

| id | vc | acc |

+------+------+-------+

| 1 | 100 | admin |

+------+------+-------+

1 row in set (0.00 sec)

mysql> UPDATE

-> pla

-> SET

-> vc=vc+2000

-> WHERE

-> acc='admin'

-> AND id=(SELECT MAX(id)

-> FROM pla WHERE acc='admin');

ERROR 1093 (HY000): You can't specify target table 'pla' for update in FROM clause

直接更新报错。

mysql> CREATE VIEW tmp as SELECT acc, MAX(id) AS max_id FROM pla GROUP BY acc;

Query OK, 0 rows affected (0.03 sec)

创建视图

修改更新语句。

mysql> UPDATE

-> pla

-> SET

-> vc=vc+2000

-> WHERE

-> acc='admin'

-> AND id IN (SELECT max_id

-> FROM tmp WHERE acc='admin');

Query OK, 1 row affected (0.03 sec)

Rows matched: 1 Changed: 1 Warnings: 0

检查更新结果:

mysql> select * from pla;

+------+------+-------+

| id | vc | acc |

+------+------+-------+

| 1 | 2100 | admin |

+------+------+-------+

1 row in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值