MYSQL常用函数

经常使用MYSQL,收集一些常用的函数来应付不给力的记性~


1.FIND_IN_SET

-FIND_IN_SET(str,strlist)

假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

mysql> SELECT FIND_IN_SET('b','a,b,c,d');

-> 2

用起来很简单

就以上面我说到的情况来举例:

以下为引用的内容:

select * from article where FIND_IN_SET('4',type)

2.CONCAT

-CONCAT(str1,str2,…)
一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:
SELECT CONCAT(CAST(int_col AS CHAR), char_col)

MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL

select concat('11','22',null);  


2.CONCAT_WS

concat_ws()函数和concat()都是MySQL字符串处理函数,功能比较类似,但是也所有所区别,主要是处理的字符串不大一样

concat_ws()函数, 表示concat with separator,即有分隔符的字符串连接
如连接后以逗号分隔:

mysql> select concat_ws(',','11','22','33');  
 
+-------------------------------+  
| concat_ws(',','11','22','33') |  
+-------------------------------+  
| 11,22,33      |  
+-------------------------------+  
       1 row in set (0.00 sec)  

和concat不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL


2.LENGTH  和CHAR_LENGTH

length:   是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符

char_length:不管汉字还是数字或者是字母都算是一个字符


posted on 2011-10-08 11:12  旭日升  阅读(294)  评论(0编辑  收藏  举报

导航