我想将最大 值的id 更新 为当前表中其它的字段,这个sql语句 报错了。
不知道该 怎么修改哈。好像 oracle中不会出错呢..
update comment_global set comment_target_id = (
SELECT max(id) FROM comment_global
)
首先借用以下楼上的
UPDATE comment_global
SET comment_target_id = (select id from (
SELECT max(id) as id FROM comment_global
) as c)
其次你是不是没有条件限制
comment_target_id 的值全部改成id的值吗?
还是说id是条件
comment_target_id 的值改成id 的值
UPDATE comment_global
SET comment_target_id =(SELECT id FROM (
SELECT MAX(id) AS id FROM comment_global
) AS c)
WHERE id=
(SELECT id FROM (
SELECT MAX(id) AS id FROM comment_global
) AS c)
类似这样:
update user
a , (select MAX(md) md , MAX(md)+1 mdinc from user
) b set a.md =b.mdinc where a.md= b.md
mysql 查询更新同一张表是不允许的吧 你要先把查询的结果放一张临时表里
select的结果作为临时中间表就行
UPDATE comment_global
SET comment_target_id = (select id from (
SELECT max(id) as id FROM comment_global
) as c)
这样
update comment_global c,(SELECT max(id) as id FROM comment_global) c2
set c.comment_target_id = c2.id
用下面这个语句:
update comment_global set comment_target_id = (select t.id from ( SELECT max(id) as id FROM comment_global ) as t)