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