SQL語句詳解 MySQL update的正確用法

2022-10-06 02:03:11 字數 2060 閱讀 3510

單錶的mysql update語句:

update [low_priority] [ignore] tbl_name

set col_name1=expr1 [, col_name2=expr2 ...]

[where where_definition]

[order by ...]

[limit row_count]

多表的updatebkgedmflu語句:

update [low_priority] [ignore] table_references

set col_name1=expr1 [, col_name2=expr2 ...]

[where where_definition]

update語法可以用新值更新原有錶行中的各列。set子句指示要修改哪些列和要給予哪些值。where子句指定應更新哪些行。如果沒有where子句,則更新所有的行。如果指定了order 程式設計客棧by子句,則按照被指定的順序對行進行更新。limit子句用於給定乙個限值,限制可以被更新的行的數目。

mysql update語句支援以下修飾符:

如果您使用low_priority關鍵詞,則update的執行被延遲了,直到沒有其它的客戶端從表中讀取為止。

如果您使用ignore關鍵詞,則即使在更新過程**現錯誤,更新語句也不會中斷。如果出現了重複關鍵字衝突,則這些行不會被更新。如果列被更新後,新值會導致資料轉化錯誤,則這些行被更新為最接近的合法的值。

如果您在乙個表示式中通過tbl_name訪問一列,則updat使用列中的當前值。例如,以下語句把年齡列設定為比當前值多一:

mysql> update persondata set ageage=age+1;

mysql updatebkgedmflu賦值被從左到右評估。例如,以下語句對年齡列加倍,然後再進行增加:

mysql> update persondata set ageage=age*2, ageage=age+1;

如果您把一列設定為其當前含有的值,則mysql會注意到這一點,但不會更新。

如果您把被已定義為not null的列更新為null,則該列被設定到與列型別對應的預設值,並且累加警告數。對於數字型別,預設值為0;對於字串型別,預設值為空字串('');對於日期和時間型別,預設值為「zero」值www.cppcns.com。

update會返回實際被改變的行的數目。mysql_info() c api函式可以返回被匹配和被更新的行的數目,以及在update過程中產生的警告的數量。

您可以使用limit row_count來限定update的範圍。limit子句是乙個與行匹配的限定。只要發現可以滿足where子句的row_count行,則該語句中止,不論這些行是否被改變。

如果乙個update語句包括乙個order by子句,則按照由子句指定的順序更新行。

您也可以執行包括多個表的update操作。table_references子句列出了在聯合中包含的表。以下是乙個例子:

sql>update items,month set items.price=month.price

where items.id=month.id;

以上的例子顯示出了使用逗號操作符的內部聯合,但是multiple-table update語句可以使用在select語句中允許的任何型別的聯合,比如left join。

注釋:您不能把order by或limit與multiple-table update同時使用。

在乙個被更改的multiple-table update中,有些列被引用。您只需要這些列的mysql update許可權。有些列被讀取了,但是沒被修改。您只需要這些列的select許可權。

如果您使用的multiple-table update語句中包含帶有外來鍵限制的innodb表,則mysql優化符處理表的順序可能與上下層級關係的順序不同。在此情況下,語句無效並被 回滾。同時,更新乙個單一表,並且依靠on update功能。該功能由innodb提供,用於對其它表進行相應的修改。

目前,您不能在乙個子查詢中更新乙個表,同時從同乙個表中選擇。

本文標題: sql語句詳解 mysql update的正確用法

本文位址:

SQL語句 SELECT LIKE 用法詳解

sql語句 select like like用法詳解 a 包含零個或多個字元的任意字串 1 like mc 將搜尋以字母 mc 開頭的所有字串 如 mcbadden 2 like inger 將搜尋以字母 inger 結尾的所有字串 如 ringer stringer 3 like en 將搜尋在任...

SQL語句 SELECT LIKE 用法詳解

sql語句 select like 用法詳解 like語句的語法格式是 select from 表名 where 欄位名 like 對應值 子串 它主要是針對字元型字段的,它的作用是在乙個字元型字段列中檢索包含對應子串的。假設有乙個資料庫中有個表table1,在table1中有兩個字段,分別是nam...

SQL語句 SELECT LIKE用法詳解

在sql結構化查詢語言中,like語句有著至關重要的作用。like語句的語法格式是 select from 表名 where 欄位名 like 對應值 子串 它主要是針對字元型字段的,它的作用是在乙個字元型字段列中檢索包含對應子串的。a 包含零個或多個字元的任意字串 1 like mc 將搜尋以字母...