如何在mysql中查询小数点后的位数大于某个数的数据?

本文介绍如何使用MySQL查询小数点后位数超过5位的数据。通过反转字符串并定位小数点来计算小数部分的长度。

问题背景:有一批数据,小数点后的位数参差不齐,我想处理小数点后位数大于4的数据,那么第一步:怎么把这些数据查出来?

1.数据库:mysql

2.数据格式:varchar (如果存的是数字,可以把数字用cast函数转成varchar)

3.原始数据图如下:

4.思路:

(1)用REVERSE(str)函数反转字符串;

(2)用INSTR(STR,SUBSTR) 函数查找小数点“.”出现的位置。——注:INSTR(STR,SUBSTR) 在一个字符串(STR)中搜索指定的字符(SUBSTR),返回发现指定的字符的位置(INDEX);

(3)用第(2)步查出的数-1即小数点后数据的位数,或者说长度

5.效果如图:

6.sql

select 
price as '原始数据',
REVERSE(price) as '反转后的原始数据' ,
INSTR(REVERSE(price),'.') as '小数点的位置',
INSTR(REVERSE(price),'.')-1 as '小数点后的位数' 
from table 
where (INSTR(REVERSE(price),'.')-1)>5   ;

-- price是要处理的字段名,table 是表名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值