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