如何使用mysql函数只保存逗号后的数字?
例如:16.03
---->03
如果我理解正确,您需要数字的小数部分。在 MySQL 中,您可以这样做mod()
:
select mod(14.03, 1)
产生“0.03”。
编辑:
Juhana 提出了一个非常好的观点。MySQL 可以在数字和字符串之间自由转换,因此您可以substr()
在此使用:
select substr(14.03, locate('.', 14.03)+1)
如果您想要逗号后的数字,请替换'.'
为','
.
如果您的值来自表格,则必须准备好处理某些值可能是整数的事实(即:在转换为字符串时没有小数分隔符):
SELECT IF(LOCATE('.', value), SUBSTRING_INDEX(value,'.', -1), "0") FROM tbl;
或者简单地说:
14.03 % 1
--> 0.03
也适用于负数:
-14.03 % 1
--> -0.03
如果您正好在小数点后的两位数之后(并且您只处理正数),您可以执行以下操作:
substring(format( num %1,2),3,2) -- num being the column (integer of float, double ...)
--> 03 -- for num=14.03
--> 00 -- for num=14
--> 05 -- for num=14.046739
当然,如果你想要所有数字,你可以省略format()
substring(num %1,3,2)
--> 03 -- for num=14.03
--> -- for num=14
--> 046739 -- for num=14.046739
但这使得整数大小写非常难看。