修改MySQL字段为首字母大写
最近學習MySQL函數,發現其有轉換大小寫的函數,但卻是對整個字段進行全部的轉換,如果需要將字段中首字母大寫卻沒有直接的函數,這對于姓名來說可能有點不方便。這里正好練習了下使用函數實現首字母大寫的轉換。
修改某字段的內容,使其首字符大寫,用于英文姓名
首先解釋用到的函數:
?
CONCAT(str1,str2)
字符連接函數
?
UPPER(str)
將字符串改為大寫字母
?
LOWER(str)
將字符串改為小寫字母
?
LENGTH(str)
判定字符串長度
?
SUBSTRING(str,a,b)
提取字段中的一段,從字符串str的第a位開始提取,提取b個字符
?
LEFT(str,n)
提取字符串最左邊的n個字符
?
RIGHT(str,n)
提取字符串最右邊的n個字符(該例未用到)
思路:
1、用LEFT單獨將首字母取出并用UPPER換成大寫
2、確定字段的長度,并用SBUSTRING取出從第二位到最后一位的所有字段備用。
3、用CONCAT連接上邊的兩個值
4、update表中字段的值即可。
mysql> select ename from emp;
+--------+
| ename? |
+--------+
| zzx??? |
| lisa?? |
| bjguan |
| dony?? |
| bzshen |
+--------+
5 rows in set (0.00 sec)
mysql> update emp set ename=concat(UPPER(left(ename,1)),substring(ename,2,(length(ename)-1)));
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5? Changed: 5? Warnings: 0
mysql> select * from emp;
+--------+------------+---------+--------+
| ename? | hiredate?? | sal???? | deptno |
+--------+------------+---------+--------+
| Zzx??? | 2000-01-01 |? 100.00 |????? 1 |
| Lisa?? | 2003-02-01 |? 400.00 |????? 2 |
| Bjguan | 2004-04-02 |? 100.00 |????? 1 |
| Dony?? | 2005-02-05 | 2000.00 |????? 4 |
| Bzshen | 2005-04-01 | 4000.00 |????? 3 |
+--------+------------+---------+--------+
5 rows in set (0.00 sec)
mysql> update emp set ename=LOWER(ename);
Query OK, 5 rows affected (0.05 sec)
Rows matched: 5? Changed: 5? Warnings: 0
mysql> select * from emp;
+--------+------------+---------+--------+
| ename? | hiredate?? | sal???? | deptno |
+--------+------------+---------+--------+
| zzx??? | 2000-01-01 |? 100.00 |????? 1 |
| lisa?? | 2003-02-01 |? 400.00 |????? 2 |
| bjguan | 2004-04-02 |? 100.00 |????? 1 |
| dony?? | 2005-02-05 | 2000.00 |????? 4 |
| bzshen | 2005-04-01 | 4000.00 |????? 3 |
+--------+------------+---------+--------+
5 rows in set (0.00 sec)
轉載于:https://blog.51cto.com/zhouxuguang/717519
總結
以上是生活随笔為你收集整理的修改MySQL字段为首字母大写的全部內容,希望文章能夠幫你解決所遇到的問題。