UPDATE 更新資料

UPDATE 用來修改資料表中的現有資料。

語法

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
務必加上 WHERE 條件!否則會更新資料表中的所有資料。

更新單一欄位

假設有一個 customers 資料表:

idnamecityphone
1張一台北02-1234
2王二高雄07-5678

更新王二的電話:

UPDATE customers
SET phone = '07-9999'
WHERE id = 2;

結果:

idnamecityphone
1張一台北02-1234
2王二高雄07-9999

更新多個欄位

同時更新多個欄位:

UPDATE customers
SET city = '新北', phone = '02-8888'
WHERE name = '張一';

根據條件更新多筆資料

-- 將所有高雄的客戶改為高雄市
UPDATE customers
SET city = '高雄市'
WHERE city = '高雄';

使用運算式更新

可以使用運算式或函數:

-- 所有商品價格打 9 折
UPDATE products
SET price = price * 0.9;

-- 庫存減 1
UPDATE products
SET stock = stock - 1
WHERE id = 100;

使用子查詢更新

搭配子查詢更新資料:

UPDATE orders
SET status = 'VIP'
WHERE customer_id IN (
    SELECT id FROM customers WHERE total_purchases > 100000
);

安全提醒

在執行 UPDATE 之前,建議:

  1. 先用 SELECT 確認會影響哪些資料:
SELECT * FROM customers WHERE id = 2;
  1. 使用 Transaction 包起來,有問題可以 ROLLBACK:
BEGIN TRANSACTION;
UPDATE customers SET phone = '07-9999' WHERE id = 2;
-- 確認無誤後
COMMIT;