mysql-update語法


update語法

Single-table語法:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

Multiple-table語法:

UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

UPDATE語法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要給予哪些值。WHERE子句指定應更新哪些行。如果沒有WHERE子句,則更新所有的行。如果指定了ORDER BY子句,則按照被指定的順序對行進行更新。LIMIT子句用於給定一個限值,限制可以被更新的行的數目。

 

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

UPDATE persondata SET age=age+1;

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

UPDATE persondata SET age=age*2, age=age+1;

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

update表的某些字段為null

update person set number=null,name=null;

如果您把被已定義為NOT NULL的列更新為NULL,則該列被設置到與列類型對應的默認值,並且累加警告數。對於數字類型,默認值為0;對於字符串類型,默認值為空字符串('');對於日期和時間類型,默認值為“zero”值。

 

多個表的UPDATE操作

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同時使用。

 

轉自 http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#update


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM