好久没有和大家见面了,最近换了工作,一直在熟悉新公司的业务和技术,这些天闲了一些,今天给大家分享一个在Mysql中实现百分数型字符串比较的一种思路。
举个栗子
这几天遇到个小需求,一个表中存储百分数的字段是varchar类型的,存储的数据都是像 20%这种,如图:
是这种百分数型的字符串,现在要实现按这个字段进行范围查询,就涉及到了这种百分数型的字符串之间的比较,分享一种我的实现思路,用到了两个mysql的函数:
LEFT函数
LEFT(str,len),返回字符串str的左面len个字符,先返回百分数型字符串除了%号的数字
left('10%',length('10%')-1)
SELECT left('10%',length('10%')-1) FROM dual;
length返回字符串的长度(不关键,就不专门说了)
ABS函数
ABS(X),返回X的绝对值
ABS(left('10%',length('10%')-1))
SELECT ABS(left('10%',length('10%')-1)) FROM dual;
通过这两次操作,百分数型字符串已经变成了double行的数字,直接进行比较就行。
今天就为大家说道这里,欢迎大家来交流,指出文中一些说错的地方,让我加深认识。
谢谢大家!