MySQL資料處理函式
使用函式的話要注意寫清程式碼註釋,因為MySQL的程式碼移植性沒有SQL高。
總結
- 處理文字
- 處理數值資料
- 處理日期和時間值
- 返回特殊資訊,如使用者登入、版本檢查等系統函式
1. 處理文字
1.1 變小寫:
SELECT Lower('HELLO');
+----------------+
| Lower('HELLO') |
+----------------+
| hello |
+----------------+
1.2 變大寫:
SELECT Upper('hello');
+----------------+
| Upper('hello') |
+----------------+
| HELLO |
+----------------+
1.3 擷取左邊兩位:注意要標擷取長度。擷取右邊同理
SELECT Left('hello',3);
+-----------------+
| Left('hello',3) |
+-----------------+
| hel |
+-----------------+
1.4定位某個str在串中的位置:SELECT Locate('o','hello');
+---------------------+
| Locate('o','hello') |
+---------------------+
| 5 |
+---------------------+
1.5 選擇子串,從哪位開始取:注意要先給出起始位置,輸出包括起始位置
SELECT SubString('hello',2);
+----------------------+
| SubString('hello',2) |
+----------------------+
| ello |
+----------------------+
1.6 通過相似發音進行檢索 不太靠譜
想要匹配Y Sam,試了Sun,Sam都不行,感覺發音還挺相同的呀,可能一定要兩個詞及以上才能匹配上吧==,最後試了Y Sun可以。
SELECT cust_name,cust_contact from customers where Soundex(cust_contact)=Soundex('y sun');
+----------------+--------------+
| cust_name | cust_contact |
+----------------+--------------+
| Yosemite Place | Y Sam |
+----------------+--------------+
2. 日期和時間處理函式
日期格式 yyyy-mm-dd
2.1 Date():把有時分秒的時間只取日期
SELECT Date('2005-09-01 11:30:30');
+-----------------------------+
| Date('2005-09-01 11:30:30') |
+-----------------------------+
| 2005-09-01 |
+-----------------------------+
2.2 AddDate(): 增加天數
SELECT AddDate('2005-02-01',28);
+--------------------------+
| AddDate('2005-02-01',28) |
+--------------------------+
| 2005-03-01 |
+--------------------------+
2.3 AddTime():增加時間,注意格式
SELECT AddTime('2005-09-01 11:30:30','0:1:59');
+-----------------------------------------+
| AddTime('2005-09-01 11:30:30','0:1:59') |
+-----------------------------------------+
| 2005-09-01 11:32:29 |
+-----------------------------------------+
2.4 Curdate():返回當前日期
SELECT Curdate();
+------------+
| curdate() |
+------------+
| 2018-09-26 |
+------------+
3. 數值處理函式