UPDATE下不能SELECT本表的解决方法
UPDATE fanwe_share SET px = (select max(px)+1 from fanwe_share) WHERE share_id = 2
我是想将某值改为当前列的最大值+1.。。。。
不过好像UPDATE下不能SELECT本表,,,,
——解决方案——————–
楼主要的是这个吗?试试看:
- SQL code
mysql> select * from test; +------+------+ | id | col2 | +------+------+ | 1 | 2 | | 2 | 1 | | 1 | 3 | | 3 | 14 | +------+------+ 4 rows in set (0.00 sec) mysql> select max(col2) into @col2 from test;update test set col2=@col2+10 where id=3; Query OK, 1 row affected (0.00 sec) Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from test; +------+------+ | id | col2 | +------+------+ | 1 | 2 | | 2 | 1 | | 1 | 3 | | 3 | 24 | +------+------+ 4 rows in set (0.00 sec)
------解决方案--------------------
UPDATE fanwe_share,(select max(px)+1 AS MA from fanwe_share) B
SET A.px =B.MA WHERE share_id = 2
------解决方案--------------------
------解决方案--------------------
select @id:=max(px) from fanwe_share;
UPDATE fanwe_share SET px=@id+1 WHERE share_id = 2;
这样不行么,你试过了? @id:=
欢迎大家阅读《UPDATE下不能SELECT本表的解决办法》,跪求各位点评,by 搞代码