Mysql和Oracle数据库更新时限制更新数量

将table_a表中状态为2和3的数据更新为1,并根据id升序排序,只更新前3条

1.MySQL语法

mysql使用 LIMIT 限制更新行数

# 将table_a表中状态为2和3的数据更新为1,并根据id升序排序,只更新前3条
UPDATE
	table_a
SET
	state = 1
WHERE
	id IN 
(
	SELECT
		temp.id
	FROM
		(
		SELECT
			id
		FROM
			table_a
		WHERE
			state IN (2, 3)
			ORDER BY
				id ASC ) temp
)
LIMIT 3;

2.Oracle语法

oracle使用 ROWNUM 限制更新行数

# 将table_a表中状态为2和3的数据更新为1,并根据id升序排序,只更新前3条
UPDATE
	table_a
SET
	state = 1
WHERE
	id IN 
(
	SELECT
		t.id
	FROM
		(
		SELECT
			id
		FROM
			table_a
		WHERE
			state IN (2, 3)
			ORDER BY
				id ASC) t
)
WHERE
	ROWNUM <= 3

猜你喜欢

转载自blog.csdn.net/weixin_43948460/article/details/131706066