为什么结果不一样的?
正常来说70.00应该是最小啊?应该排在最后啊?我的price字段是varchat类型
varchar类型的排序规则就是按从左向右比较排,你可以重新定义数据类型
可以用convert强制转换数据类型,如果想达到理想排序效果可以order by CONVERT(price,SIGNED) desc
希望对您有帮助
varchar类型排序和字符串排序一样,先从第一位的开始比较,8,7,6,5,4,3,2,1,0这种数据,如果第一位相同比较第二位......可以考虑排序的时候转换一下,或者表数据设计成decimal类型
3 回答2.7k 阅读✓ 已解决
3 回答4.2k 阅读✓ 已解决
8 回答3.8k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
4 回答1.9k 阅读
如果按照字符串来排序,这个结果是正确的,如果想按照数值排序,有以下几种方法:
1.order by price+0 desc
2.order by CAST(price as SIGNED) desc
3.order by CONVERT(price,SIGNED) desc