關於MySQL函數一直想寫點東西,讓學生能快速的上手。 MySQL內建函數比較多, 讓新學習MySQL的同學,一看就嚇的不知道怎麼開始了,當然也有很多同學非常利害的,一點一點,象背單字那樣把整個函數列表背下來了(但過段有可能也忘了),也表示佩服。這裡我給那些記憶不好的同學,推薦五個使用頻率特高別的函數,結合案例看一下。最後奉上知數堂學生: Wing 整理的《知數堂-MySQL內建函數手冊》 PDF版本。
開始進入正題:
第一個: substring_index()
用於傳回指定字元間隔後的N個例,指定數的字符,官方
來一個實際案例,有可能會記的更清楚一點, 例在MySQL統計一下,都有那些IP連到MySQL內部,及每個IP有多個連接
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); -> 'www.mysql' mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2); -> 'mysql.com'
第二個: concat()
select count(*) , substring_index(host,':',1) as ip , db from information_schema.processlist group by substring_index(host,':',1) ,db;
來看實際案例:把MySQL內部的連接全幹掉,讓他連接一下DB
mysql> select concat('zhishuedu.','com'); -> 'zhishuedu.com'
用於產生指定字段串的長度,在做壓力測試,生成數據中特別有用,直接看案例
>select concat('kill ', id,';') into outfile '/tmp/kthd.sql' from information_schema.processlist where user!='system'; >source /tmp/kthd.sql;
返回當前的時間,直接敲一下:
欄位寫入時間,比較有用。 因為簡單,就不在運行這塊對應的函數: from_unixtime(), unix_timestamp() 也要關註一下
第五個: length()
返回字串長度,看案例, 對於有時統計一下欄位長度,做一些分析還是挺有幫助
root@localhost [(none)]>select repeat('zhishuedu.com ', 3); +--------------------------------------------+ | repeat('zhishuedu.com ', 3) | +--------------------------------------------+ | zhishuedu.com zhishuedu.com zhishuedu.com | +--------------------------------------------+ 1 row in set (0.00 sec)
這塊內容還是比較多的,但還是要收尾的,如果閉著眼睛把以前敲過的函數在寫一下,還有:
select length('wubx'), char_length('wubx'), length('知数堂'),char_length('知数堂')\G; *************************** 1. row *************************** length('wubx'): 4 char_length('wubx'): 4 length('知数堂'): 9 char_length('知数堂'): 3 1 row in set (0.00 sec)
等著等。
大家有興趣也可以下載一下我們提供的手冊來閱讀一下,當然這份手冊,也是一個初版,還有待完善的地方,本著從0到1的原則,先放出來了。如果你想完善這個,或有更新,聯絡我。
以上就是推薦MySQL常用函數+福利的內容,更多相關內容請關注PHP中文網(www.php.cn)!