MySQL 数字类型转换函数(concat/cast/+'0'),及使用场景

MySQL里面,如何在SQL语句中让字符串的 “123” 转换为数字的 123 ?

我们在一些需要字符串进行排序的时候,经常遇到这样的场景。

解决办法如下:

1. 将 Int 转为 varchar:

经常用 concat 函数,比如 concat(8,'0') 得到字符串 '80';

2、将 varchar 转为 Int ,有三种方法:

①. CAST函数(常用):如 SELECT CAST('123' AS SIGNED integer) ;

②. CONVERT函数:SELECT CONVERT('123',SIGNED);

③. +0 则将字符串自动转化成整数:SELECT '123' + 0;

CAST 函数的可转换类型,包含:

  • 二进制,同带binary前缀的效果 : BINARY
  • 字符型,可带参数 : CHAR
  • 日期 : DATE
  • 时间: TIME
  • 日期时间型 : DATETIME
  • 浮点数 : DECIMAL
  • 整数 : SIGNED
  • 无符号整数 : UNSIGNED

小编曾遇到这样一个场景:

1. ID字段是varchar类型的数字,找出ID的最大值,怎么写SQL?

  • SELECT MAX(CAST(PRE_ID  AS SIGNED integer)) PRE_ID FROM T_TABLE;
    
  • SELECT MAX(PRE_ID + '0') PRE_ID   FROM T_TABLE;
    

小编最初使用上面的方法,后来发现我的项目不支持该函数(老项目不让改pom),只能使用+0的方法,完美适配。

更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

发布了147 篇原创文章 · 获赞 169 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_44259720/article/details/103202213