UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col1=expr1 [, col2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col1=expr1 [, col2=expr2 ...] [WHERE where_definition]
LOW_PRIORITY:等待無讀取線程再執行。IGNORE:遇到重複鍵衝突跳過該行;數據轉換錯誤時存最接近合法值,不中斷。SET a=a*2, a=a+1 先乘後加。SET age=age+1 正確遞增。將 NOT NULL 列設為 NULL → 存類型默認值(數字 0、字串 ''、日期零值)並累加警告計數。
mysql_info() 可獲匹配行、更新行、警告數。LIMIT n 限制匹配到的前 n 行(無論是否改變)。ORDER BY 指定更新順序,配合 LIMIT 可實現「更新前 N 條」。UPDATE items, month SET items.price = month.price WHERE items.id = month.id;
支持任意 JOIN 類型(LEFT JOIN 等)。禁止 同時使用 ORDER BY/LIMIT。
ON UPDATE CASCADE 自動級聯。當前版本不支持 在子查詢中更新表的同時從同表選擇。
WHERE,防誤更新全表。LIMIT),避免長事務鎖表。