SQL 多行更新

假設數據庫中有如下名爲user表格:

id no name gender room
1 BB1344 張三1 112
2 BB1345 張三2 113
3 BB1346 張三3 114
4 BB1347 張三4 115
5 BB1348 李四1 115
6 BB1349 李四2 115
7 BB1350 李四3 115
8 BB1351 李四4 115
9 BB1352 李四5 116
10 BB1353 李四6 116

現在我們想根據學號(no)中的前四位填充class字段。有如下幾種做法。

一:通過臨時表。步驟如下:

create table temp select id, substring(no, 1, 4) as class from user;	//創建臨時表
update temp t join user u using(id) set u.class = t.class;	 //利用內連接更新user表
drop table temp;

二:直接利用update語句更新:

update user set class = substring(no, 1, 4);

注意:substring的第一個參數是要截取的字符串主串,第二個參數是啓示位置,第三個參數是要截取的子串的長度。在MySQL中,subsring中字符串的起始位置是1而不是0!切記切記!

常用的字符串處理函數還有lengthconcat等。

update語句中還可以嵌套case語句,根據條件更新對應的值。

參考:MySQL常用字符串操作函數大全,以及實例

update執行一次SQL查詢,UPDATE多行記錄


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章