MySql字符串函数使用技巧

1、从左开始截取字符串 
left(str, length) 
说明:left(被截取字段,截取长度) 
例:select left(content,200) as abstract from my_content_t 


2、从右开始截取字符串 
right(str, length) 
说明:right(被截取字段,截取长度) 
例:select right(content,200) as abstract from my_content_t 


3、截取字符串 
substring(str, pos) 
substring(str, pos, length) 
说明:substring(被截取字段,从第几位开始截取) 
substring(被截取字段,从第几位开始截取,截取长度) 
例:select substring(content,5) as abstract from my_content_t 
select substring(content,5,200) as abstract from my_content_t 
(注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度) 


4、按关键字截取字符串 
substring_index(str,delim,count) 
说明:substring_index(被截取字段,关键字,关键字出现的次数) 
例:select substring_index("blog.jb51.net","。",2) as abstract from my_content_t 
结果:blog.jb51 
(注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束) 

 

5、INSTR(str,substr) ;LOCATE(str,substr); POSITION(str IN substr) 

   返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数被颠倒。 

 

6、REVERSE(str)

  反转str; 

 

7、TRUNCATE(X,D);

返回被舍去至小数点后D位的数字X。若D 的值为 0, 则结果不带有小数点或不带有小数部分。可以将D设为负数,若要截去(归零) X小数点左起第D位开始后面所有低位的值.
今天正好有个需求,查询标准表中某2个字段的百分比....

示例:

select TRUNCATE(progress/video_duration,2) as percent  from mime_study_logs ;
video_duration字段即使(这里的分母为0或null),返回的也是null,而不用php计算验证除法的合法性

这里计算了两个数相除,2表示结果小数点后面的位数,比如:1/3 =0.33

posted @ 2017-03-22 11:17  周伯通之草堂  阅读(932)  评论(0编辑  收藏  举报