Mysql rownum 實現
SELECT @rownum:=@rownum+1 AS rownum, frutas.*
FROM (SELECT @rownum:=0) r, frutas;
用rownum修改自身表字段
比如:下面是對同一張表(即a=b)的sort_no進行修改,將sort_no設置為rownum:
update a inner join
(
SELECT b.id, @rownum:=@rownum+1 AS rownum
FROM (SELECT @rownum:=0) r, b where b.status!='DELETED' order by b.update_time desc
) c
on a.id=c.id
set a.sort_no=c.rownum
where a.status!='DELETED'
詳細請參考:
MySQL update不能直接使用select的結果
http://www.linuxidc.com/Linux/2011-03/33845.htm
如果不像上面那么特殊,也可以寫成下面這樣:
(也就是把要查詢的東西先放到臨時表里,起個別名)
update apples
set price = (
select price from (
select * from apples
) as x
where variety = 'gala')
where variety = 'fuji';
詳細請參考: