假設數據庫中有如下名爲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!切記切記!
常用的字符串處理函數還有length、concat等。
update語句中還可以嵌套case語句,根據條件更新對應的值。
update:執行一次SQL查詢,UPDATE多行記錄