Mysql varchar类型的数值大小排序

应用场景 : 就是说如果数据库存的数字是字符串形式 无法进行大小排序 现在可以使用 CAST(字段名 AS datatype) 或者 CONVERT(字段名 , datatype) 函数 再结合ORDER BY的正序或者倒叙 进行排序

问题复现 :  并没有按照正序排序 

第一种 : 

SELECT storage_name AS 'text',storage_no AS 'value' 
FROM base_storage 
WHERE status=100101001 
	and del_flag=100102001 
	and factory_no='jidi01'
	and wh_no ='CK01' 
	and reservoir_no ='KQ01' 
	and track_no='KD01' 
ORDER BY CAST(`value` AS SIGNED) ASC

第二种 : 

SELECT storage_name AS 'text',storage_no AS 'value' 
FROM base_storage 
WHERE status=100101001 
	and del_flag=100102001 
	and factory_no='jidi01'
	and wh_no ='CK01' 
	and reservoir_no ='KQ01' 
	and track_no='KD01' 
ORDER BY CAST(`value` AS SIGNED) ASC

结果展示 : 

datatype参数取值

描述
DATE将value转换成'YYYY-MM-DD'格式
DATETIME将value转换成'YYYY-MM-DD HH:MM:SS'格式
TIME将value转换成'HH:MM:SS'格式
CHAR将value转换成CHAR(固定长度的字符串)格式
SIGNED将value转换成INT(有符号的整数)格式
UNSIGNED将value转换成INT(无符号的整数)格式
DECIMAL将value转换成FLOAT(浮点数)格式
BINARY将value转换成二进制格式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值