sql 怎么对带单位字符串排序?

表中有个字段size带单位M, 假如有记录 50M 40M 20M,怎么写sql查询出所有大于30M的记录?


sql
mysql
数据库
2023-06-09 12:58:33
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
海底捞天王

要知道 sql 对于 varchar 的排序是字符序,它会从字符串的第一位开始进行 ascii 码的比较。


所以 30M < 40M,而301M < 40M。


如果你的单位是固定位数的话,可以用 mysql 的截取字符串函数,把单位去掉之后再进行过滤筛选。


如 select * from table where cast(substring_index(size,’M’,1) as signed) > 40


这个 sql 的意思是取这一列第一个 M 之前的字符并转化为整数,并且转化后的整数大于40。


当然这样写,列名用了函数就没法走索引了,数据量大的话会比较慢。



分享
微博
QQ
微信
回复
2023-06-09 14:19:47
相关问题
mysql order对数字型字符串排序
1055浏览 • 1回复 待解决
字符串型IP地址从小到大排序
2527浏览 • 2回复 待解决
如何字符串进行MD5哈希处理
1041浏览 • 1回复 待解决
emoji字符串无法进行截取
514浏览 • 1回复 待解决
如何生成UUID的字符串
877浏览 • 1回复 待解决
如何实现字符串编解码
1021浏览 • 1回复 待解决
嵌套JSON字符串解析问题
716浏览 • 1回复 待解决
如何解析JSON字符串
403浏览 • 1回复 待解决
字符串资源引用出错,该怎么办啊?
349浏览 • 1回复 待解决
如何实现Map转JSON字符串
606浏览 • 1回复 待解决
ArkTS如何实现字符串编解码
1228浏览 • 1回复 待解决
如何实现ArkUI组件字符串变量拼接
1263浏览 • 1回复 待解决
如何压缩字符串,有人知道吗?
472浏览 • 1回复 待解决
关于字符串的分割和重组处理
2616浏览 • 1回复 待解决
$r('xxxxx')是否支持字符串动态拼接
710浏览 • 1回复 待解决
如何加载字符串形式H5数据
689浏览 • 1回复 待解决
Web如何使用loadData加载复杂Html字符串
819浏览 • 1回复 待解决
AES加解密长字符串是否需要分段
199浏览 • 1回复 待解决