MySQL 的 MAX()函数和MIN()函数比较字符串

本文探讨了在使用MAX函数处理字符串类型数据时常见的错误,解释了MAX函数如何基于ASCII码进行比较,并提供了正确的解决方案,包括将字符串转换为数字类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.问题描述:

        在维护代码时,发现使用MAX()函数,比较出来的结果不正确,查看后发现字段类型是varchar

2.问题解决:

        MAX()和MIN()函数比较数字类型时,比较的是值,取出最大值或最小值

        使用MAX()查询一个字符串类型的字段时,那么比较的实际是字符的ASCII码,然后依次往后比较

3.解决方案:

  • MAX(total_score + 0)
  • MAX(CAST(total_score as decimal(4,2))) as highScore 将字符串转换为decimal 

补充说明: 
  对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼拼音排列的,若首字符相同,则比较下一个字符,以此类推。 
  当然,对与日期时间类型的数据也可以求其最大/最小值,其大小排列就是日期时间的早晚,越早认为其值越小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值