0
点赞
收藏
分享

微信扫一扫

Mysql 截取保留小数点后两位内容


比例:字段内容为12.34567.我想截取精确到小数点后两位12.34。但是小数点前面位数不固定。可以用下面方法实现。

 

INSTR(str,substr)


返回子串 ​​substr​​ 在字符串

​str​​ 中的第一个出现的位置。这与有2个参数形式的

​LOCATE()​​ 相同,除了参数被颠倒。


mysql> select INSTR('foobarbar', 'bar'); -> 4 mysql> select INSTR('xbar', 'foobar'); -> 0



这函数是多字节可靠的。

 


 


LOCATE(substr,str,pos)

返回子串 ​​substr​​ 在字符串

​str​​ 第一个出现的位置,从位置

​pos​​ 开始。如果

​substr​​ 不是在

​str​​ 里面,返回

​0​​ 。


mysql> select LOCATE('bar', 'foobarbar',5); -> 7



这函数是多字节可靠的。 


 

SUBSTRING(str,pos,len)

      

方法一:

SELECT SUBSTRING(`password`,1,INSTR(password,'.')+2) AS p FROM `user` WHERE id = 8

方法二:

SELECT SUBSTRING(`password`,1,LOCATE('.',password)+2) AS p FROM `user` WHERE id = 8

相关介绍:

在工作中碰到一个Mysql字段更新问题 在custom表中有一个tariffurl的值中有如下情况: uploadfiles ariff2007031172720306698.jpg以及uploadfiles ariff2007031172720306690.jpg;uploadfiles ariff2007031172720306691.jpg形式 要更改成uploadfiles/tariff/200703/1172720306698.jpg及 uploadfiles/tariff/200703/1172720306690.jpg;uploadfiles/tariff200703/1172720306691.jpg 形式 可以综合利用substring函数和cancat函数来实现,步骤如下: 1、 update custom set tariffurl=concat('uploadfiles/tariff/200703/',substring(tariffurl,24)) where tariffurl like 'uploadfiles ariff200703%' 2、update custom set tariffurl=concat(substring(tariffurl,1,55),'/tariff/200703/',substring(tariffurl,68)) where tariffurl like 'uploadfiles/tariff/200703/%' and tariffurl like'%;uploadfiles %' substring(filed,m):截取filed字段从第m个字符开始到结束的字符串; substring(filed,m,n):截取filed字段从第m个字符开始的长度为n的字符串; cancat(string1,sting2,……):将string1、string2, ……字符串连接起来。

举报

相关推荐

0 条评论