使用函数的话要注意写清代码注释,因为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. 数值处理函数