将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