SQL UPDATE 計算順序
在 SQL UPDATE 語句中,計算順序決定後續表達式是否依賴修改後的值。本文探討了查詢中的求值順序:
UPDATE tbl SET q = q + 1, p = q;
MySQL 求值順序
在 MySQL 中,求值順序是「從左到右」。這表示在「p」的賦值中,表達式「q 1」在「q」之前被求值。因此,tbl.p 在遞增之前將被設定為 q 的值。
SQL 標準
根據SQL92 規範,「[值表達式]在更新T 的任何行之前對T 的每一行進行有效評估。」但是,此聲明並不明確。
實現和行為
儘管有標準,但實現的評估順序有所不同。測試顯示以下資料庫將tbl.p 設定為q:
MySQL 錯誤和文件更新
MySQL 之前違背了大多數行為,但出現了一個錯誤,並且更新了文件以明確反映“從左到右”的評估順序。此行為被標記為與標準 SQL 的差異。以上是SQL UPDATE語句求值順序是否有標準,不同資料庫該如何處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!