關于mysql函數一直想寫點東西,讓學生能快速的上手。 mysql內置函數比較多,?讓新學習mysql的同學,一看就嚇的不知道怎么開始了,當然也有很多同學非常利害的,一點一點,象背單詞那樣把整個函數列表背下來了(但過段有可能也忘了),也 表示佩服。在這里我給那些記憶不好的同學,推薦五個使用頻率特高別的函數,結合案例看一下。最后奉上知數堂學生:?wing?整理的《知數堂-mysql內置函數手冊》 pdf版本。
開始進入正題:
第一個: substring_index()
用于返回指定字符間隔后的N個字符串,指定數的字符 ,官方例:
mysql>?SELECT?SUBSTRING_INDEX('www.mysql.com',?'.',?2); ????????????->?'www.mysql' ????mysql>?SELECT?SUBSTRING_INDEX('www.mysql.com',?'.',?-2); ????????????->?'mysql.com'
來一個實際案例,有可能會記的更清楚一點, 例在MySQL統計一下,都有那些IP連到MySQL內部,及每個IP有多個連接
select?count(*)?,?substring_index(host,':',1)?as?ip?,?db?from?information_schema.processlist?group?by?substring_index(host,':',1)?,db;
第二個: concat()
字符拼接函數,看案例:
mysql>?select?concat('zhishuedu.','com'); ->?'zhishuedu.com'
來看實際案例:把MySQL內部的連接全干掉,讓他連接一下DB
>select?concat('kill?',?id,';')??into?outfile?'/tmp/kthd.sql'??from?information_schema.processlist??where?user!='system'; >source?/tmp/kthd.sql;
第三個: repeat()
用于生成指定字段串的長度,在做壓力測試,生成數據中特別有用,直接看案例
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)
第四個: now()
返回當前的時間,直接敲一下:
select now()
字段寫入時間,比較有用。 因為簡單,就不在運行 這塊相應的函數: from_unixtime(), unix_timestamp() 也要關注一下
第五個: length()
返回字符串長度,看案例, 對于有時統計一下字段長度,做一些分析還是挺有幫助
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)
? ? 這塊內容還是比較多的,但還是要收尾的,如果閉著眼睛把以前敲過的函數在寫一下,還有:
?crc32(),?floor(),?ceil(),?pow(),?isnull(),?strcmp(),?ifnull(),?char_length(),adddate(),? ?date_format(),?date(),year(),current_time(),?user(),?current_user(),password(),?cast()
等等。
大家有興趣也可以下載一下我們提供的手冊來閱讀一下,當然這份手冊,也是一個初版,還有待完善的地方,本著從0到1的原則,先放出來了。如果你想完善這個,或是有更新,聯系我。
以上就是推薦MySQL常用函數+福利的內容,更多相關內容請關注PHP中文網(www.php.cn)!