mysql函数二

来源:互联网 发布:vb.net excel教程 编辑:程序博客网 时间:2024/05/01 06:36
  1. 四、条件判断函数  
  2. 1、if(expr,v1,v2)函数:成立返回结果v1,否则结果v2  
  3. 例:select id,if(grade>=60,'pass','fail') from t;  
  4. 2、IFNULL(V1,V2)函数:如果空显示v2,否则显示v1  
  5. 例:mysql> select a,ifnull(a,'no') from pet76;  
  6. +------+----------------+  
  7. | a    | ifnull(a,'no') |  
  8. +------+----------------+  
  9. |  100 | 100            |  
  10. | NULL | no             |  
  11. |   12 | 12             |  
  12. +------+----------------+  
  13. 3 rows in set (0.01 sec)  
  14. 3、CASE函数  
  15. 格式:case when expr1 then v1 [when expr2 then v2...] [else vn] end  
  16. 格式:case expr when e1 then v1 [when e2 then v2...] [else vn] end  
  17. 例1:select grade,case when grade>60 then 'good' when grade=60 then 'pass' else 'fail' end level from t;//level是字段别名  
  18. 例2:select grade,case grade when 90 then 'good' when 60 then 'pass' else 'no grade' end level from t;//level是字段别名  
  19. 五、系统信息函数  
  20. version()返回数据库的版本号  
  21. connection_id()返回服务器的连接数  
  22. database(),schema()返回当前数据库名  
  23. user(),system_user(),session_user()返回当前用户  
  24. current_user(),current_user返回当前用户  
  25. charset(str)返回字符串str的字符集  
  26. collation(str)返回字符串str的字符排列方式  
  27. last_insert_id()返回最近生成的auto_increment值,如果一条insert语句插入多条记录,则查出来是第一个值插入时的取值。  
  28. 六、加密函数  
  29. 1、password(str)可以对字符串str进行加密,该加密是不可逆的,主要给用户的密码加密。  
  30. 2、MD5(srtr)可以对字符串str进行加密,主要对普通数据进行加密  
  31. 3、encode(str,pswd_str)可以用字符串pswd_str加密字符串str。加密结果是个二进制数,必须用blob类型的字段来保存它  
  32. 4、decode(crypt_str,pswd_str)可以用字符串pswd_str来为crypt_str解密。crypt_str是通过encode(str,pswd_str)加密后的二进制数据。  
  33. 七、其他函数  
  34. 1、format(x,n)可以将数字x进行格式化,将x保留到小数点后n位。  
  35. 例:mysql> select format(2.3456,3);  
  36. +------------------+  
  37. | format(2.3456,3) |  
  38. +------------------+  
  39. | 2.346            |  
  40. +------------------+  
  41. 1 row in set (0.04 sec)  
  42. 2、ASCII(s)返回字符串s的第一个字符的ascii码  
  43. bin(x)返回x的二进制编码  
  44. hex()返回x的十六进制编码  
  45. oct(x)返回x的八进制编码  
  46. conv(x,f1,f2)将x从f1进制数变成f2进制数  
  47. 例:  
  48. mysql> select conv(16,10,2);  
  49. +---------------+  
  50. | conv(16,10,2) |  
  51. +---------------+  
  52. | 10000         |  
  53. +---------------+  
  54. 1 row in set (0.00 sec)  
  55. 3、inet_aton(ip)函数:可以将ip地址转化为数字表示,ip需要加引号  
  56. inet_ntoa(n)函数:可以将数字n转换成ip的形式表示  
  57. 例:mysql> select inet_aton('192.168.1.125');  
  58. +----------------------------+  
  59. | inet_aton('192.168.1.125') |  
  60. +----------------------------+  
  61. |                 3232235901 |  
  62. +----------------------------+  
  63. 1 row in set (0.64 sec)  
  64. 4、get_lock(name,time)定义一个名称为name持续时间长度为time秒的锁,如果锁定成功返回1,如果尝试超时,返回0;如果遇到错误返回null。  
  65. release_lock(name)解除名称为name的锁。如果解锁成功返回1;如果尝试超时返回0;如果解锁失败返回null。  
  66. is_free_lock(name)判断是否使用名为name的锁,如果使用返回0,否则返回1.  
  67. 例:mysql> select get_lock('my',10);  
  68. +-------------------+  
  69. | get_lock('my',10) |  
  70. +-------------------+  
  71. |                 1 |  
  72. +-------------------+  
  73. 1 row in set (0.08 sec)  
  74. 5、benchmark(count,expr)函数将表达式expr重复执行count次,然后返回执行时间。主要用来判断mysql处理表达式的速度。  
  75. 6、convert(s using cs):将字符串s的字符集变成cs  
  76. 例:mysql> select charset('abc'),charset(convert('abc' using utf8));  
  77. +----------------+------------------------------------+  
  78. | charset('abc') | charset(convert('abc' using utf8)) |  
  79. +----------------+------------------------------------+  
  80. | gbk            | utf8                               |  
  81. +----------------+------------------------------------+  
  82. 1 row in set (0.00 sec)  
  83. 6、cast(x as type)和convert(x,type)这两个函数只对binary、char、date、datetime、time、signed integer、unsigned integer这些类型起作用。注意:此值改变输出值的数据类型,没有改变表中字段的类型。  
  84. 例:mysql> select cast('2009-10-28 19:47:59' as date),convert('2009-10-28 19:47:59',time);  
  85. +-------------------------------------+-------------------------------------+  
  86. | cast('2009-10-28 19:47:59' as date) | convert('2009-10-28 19:47:59',time) |  
  87. +-------------------------------------+-------------------------------------+  
  88. | 2009-10-28                          | 19:47:59                            |  
  89. +-------------------------------------+-------------------------------------+  
  90. 1 row in set (0.10 sec)  
0 0
原创粉丝点击