mysql函數二,mysql函數

來源:互聯網
上載者:User

mysql函數二,mysql函數

四、條件判斷函數1、if(expr,v1,v2)函數:成立返回結果v1,否則結果v2例:select id,if(grade>=60,'pass','fail') from t;2、IFNULL(V1,V2)函數:如果空顯示v2,否則顯示v1例:mysql> select a,ifnull(a,'no') from pet76;+------+----------------+| a    | ifnull(a,'no') |+------+----------------+|  100 | 100            || NULL | no             ||   12 | 12             |+------+----------------+3 rows in set (0.01 sec)3、CASE函數格式:case when expr1 then v1 [when expr2 then v2...] [else vn] end格式:case expr when e1 then v1 [when e2 then v2...] [else vn] end例1:select grade,case when grade>60 then 'good' when grade=60 then 'pass' else 'fail' end level from t;//level是欄位別名例2:select grade,case grade when 90 then 'good' when 60 then 'pass' else 'no grade' end level from t;//level是欄位別名五、系統資訊函數version()返回資料庫的版本號碼connection_id()返回伺服器的串連數database(),schema()返回當前資料庫名user(),system_user(),session_user()返回目前使用者current_user(),current_user返回目前使用者charset(str)返回字串str的字元集collation(str)返回字串str的字元相片順序last_insert_id()返回最近產生的auto_increment值,如果一條insert語句插入多條記錄,則查出來是第一個值插入時的取值。六、加密函數1、password(str)可以對字串str進行加密,該加密是無法復原的,主要給使用者的密碼加密。2、MD5(srtr)可以對字串str進行加密,主要對普通資料進行加密3、encode(str,pswd_str)可以用字串pswd_str加密字串str。加密結果是個位元,必須用blob類型的欄位來儲存它4、decode(crypt_str,pswd_str)可以用字串pswd_str來為crypt_str解密。crypt_str是通過encode(str,pswd_str)加密後的位元據。七、其他函數1、format(x,n)可以將數字x進行格式化,將x保留到小數點後n位。例:mysql> select format(2.3456,3);+------------------+| format(2.3456,3) |+------------------+| 2.346            |+------------------+1 row in set (0.04 sec)2、ASCII(s)返回字串s的第一個字元的ascii碼bin(x)返回x的二進位編碼hex()返回x的十六進位編碼oct(x)返回x的八進位編碼conv(x,f1,f2)將x從f1進位數變成f2進位數例:mysql> select conv(16,10,2);+---------------+| conv(16,10,2) |+---------------+| 10000         |+---------------+1 row in set (0.00 sec)3、inet_aton(ip)函數:可以將ip地址轉化為數字表示,ip需要加引號inet_ntoa(n)函數:可以將數字n轉換成ip的形式表示例:mysql> select inet_aton('192.168.1.125');+----------------------------+| inet_aton('192.168.1.125') |+----------------------------+|                 3232235901 |+----------------------------+1 row in set (0.64 sec)4、get_lock(name,time)定義一個名稱為name期間長度為time秒的鎖,如果鎖定成功返回1,如果嘗試逾時,返回0;如果遇到錯誤返回null。release_lock(name)解除名稱為name的鎖。如果解鎖成功返回1;如果嘗試逾時返回0;如果解鎖失敗返回null。is_free_lock(name)判斷是否使用名為name的鎖,如果使用返回0,否則返回1.例:mysql> select get_lock('my',10);+-------------------+| get_lock('my',10) |+-------------------+|                 1 |+-------------------+1 row in set (0.08 sec)5、benchmark(count,expr)函數將運算式expr重複執行count次,然後返回執行時間。主要用來判斷mysql處理運算式的速度。6、convert(s using cs):將字串s的字元集變成cs例:mysql> select charset('abc'),charset(convert('abc' using utf8));+----------------+------------------------------------+| charset('abc') | charset(convert('abc' using utf8)) |+----------------+------------------------------------+| gbk            | utf8                               |+----------------+------------------------------------+1 row in set (0.00 sec)6、cast(x as type)和convert(x,type)這兩個函數只對binary、char、date、datetime、time、signed integer、unsigned integer這些類型起作用。注意:此值改變輸出值的資料類型,沒有改變表中欄位的類型。例:mysql> select cast('2009-10-28 19:47:59' as date),convert('2009-10-28 19:47:59',time);+-------------------------------------+-------------------------------------+| cast('2009-10-28 19:47:59' as date) | convert('2009-10-28 19:47:59',time) |+-------------------------------------+-------------------------------------+| 2009-10-28                          | 19:47:59                            |+-------------------------------------+-------------------------------------+1 row in set (0.10 sec)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.