1. 程式人生 > >mysql更新語句使用order by

mysql更新語句使用order by

需求是:批量更新某種排序下的前N條記錄。例如:批量更新建立時間最早的20條記錄為過期,需要使用到order by,但是update不支援order by,需要使用聯合查詢,先查詢出建立時間最早的20條記錄,再通過關聯欄位聯表更新,語句:

UPDATE goods_list AS A
INNER JOIN (
	SELECT
		*
	FROM
		goods_list
WHERE sell = 0 
	ORDER BY
		createtime ASC
	LIMIT 0,
	20
) B
SET A.sell = 1
WHERE
	A.bid = B.bid