带您深入了解MYSQL Cast函数

MYSQL Cast函数是非常重要的MYSQL函数,下面就将为您详细介绍MYSQL Cast函数的语法及其使用,希望能让您对MYSQL Cast函数有更多的认识。

BINARY    
BINARY操作符将后面的字符串抛给一个二进制字符串。这是一种简单的方式来促使逐字节而不是逐字符的进行列比较。这使得比较区分大小写,即使该列不被定义为BINARY或BLOB。BINARY也会产生结尾空白,从而更加显眼。  

  1. mysql>   SELECT   'a'   =   'A';     
  2.       
  3.                   ->   1     
  4.       
  5. mysql>   SELECT   BINARY   'a'   =   'A';     
  6.                    ->   0     
  7. mysql>   SELECT   'a'   =   'a   ';     
  8.                    ->   1     
  9. mysql>   SELECT   BINARY   'a'   =   'a   ';     
  10.                    ->   0    

BINARY影响整个比较;它可以在任何操作数前被给定,而产生相同的结果。    
   
BINARY   str是CAST(str   AS   BINARY)的缩略形式。  
   
注意,在一些语境中,假如你将一个编入索引的列派给BINARY,   MySQL将不能有效使用这个索引。    
假如你想要将一个BLOB值或其它二进制字符串进行区分大小写的比较,你可利用二进制字符串没有字符集这一事实实现这个目的,这样就不会有文书夹的概念。为执行一个区分大小写的比较,可使用CONVERT()函数将一个字符串值转化为一个不区分大小写的字符集。其结果为一个非二进制字符串,因此LIKE操作也不会区分大小写:   

  1. SELECT   'A'   LIKE   CONVERT(blob_col   USING   latin1)   FROM   tbl_name;     

若要使用一个不同的字符集,   替换其在上述语句中的latin1名。  
   
CONVERT()一般可用于比较出现在不同字符集中的字符串。     
CAST(expr   AS   type),   CONVERT(expr,type)   ,   CONVERT(expr   USING   transcoding_name)    
CAST()   和CONVERT()   函数可用来获取一个类型的值,并产生另一个类型的值。    
   
这个类型   可以是以下值其中的一个:       
BINARY[(N)]    
CHAR[(N)]    
DATE    
DATETIME    
DECIMAL    
SIGNED   [INTEGER]    
TIME    
UNSIGNED   [INTEGER]    
BINARY   产生一个二进制字符串。
   
假如给定了随意长度N,则 BINARY[N] 使cast使用该参数的不多于   N   个字节。同样的,CHAR[N]会使cast使用该参数的不多于N   个字符。    

  1. CAST()   and   CONVERT(...   USING   ...)   是标准SQL语法。CONVERT()的非USING   格式是ofis   ODBC语法。  

带有USING的CONVERT()   被用来在不同的字符集之间转化数据。在MySQL中,   自动译码名和相应的字符集名称相同。例如。   这个语句将服务器的默认字符集中的字符串   ‘abc’转化为utf8字符集中相应的字符串:   

  1. SELECT   CONVERT('abc'   USING   utf8);    

 当你想要在一个CREATE   …   SELECT   语句中创建一个特殊类型的列,则cast函数会很有用:   

  1. CREATE   TABLE   new_table   SELECT   CAST('2000-01-01'   AS   DATE);    

该函数也用于ENUM   列按词法顺序的排序。通常ENUM列的排序在使用内部数值时发生。将这些值按照词法顺序派给   CHAR   结果:   

  1. SELECT   enum_col   FROM   tbl_name   ORDER   BY   CAST(enum_col   AS   CHAR);    

CAST(str   AS   BINARY)和BINARY   str相同。 CAST(expr   AS   CHAR)将表达式视为一个带有默认字符集的字符串。    
   
若用于一个诸如CONCAT(‘Date:   ‘,CAST(NOW()   AS   DATE))这样的比较复杂的表达式的一部分,CAST()也会改变结果。  
   
你不应在不同的格式中使用CAST()来析取数据,但可以使用诸如LEFT() 或 EXTRACT() 的字符串函数来代替。   

若要在数值语境中将一个字符串派给一个数值,   通常情况下,除了将字符串值作为数字使用外,你不需要做任何事:   

  1. mysql>   SELECT   1+'1';     
  2.                 ->   2    

若要在一个字符串语境中使用一个数字,该数字会被自动转化为一个BINARY   字符串。   

  1. mysql>   SELECT   CONCAT('hello   you   ',2);     
  2.                   ->   'hello   you   2'    

MySQL支持带符号和无符号的64比特值的运算。若你正在使用数字操作符(如   +)  而其中一个操作数为无符号整数,则结果为无符号。可使用SIGNED   和UNSIGNED   cast   操作符来覆盖它。将运算分别派给带符号或无符号64比特整数。 

  1. mysql>   SELECT   CAST(1-2   AS   UNSIGNED)     
  2.                   ->   18446744073709551615     
  3. mysql>   SELECT   CAST(CAST(1-2   AS   UNSIGNED)   AS   SIGNED);     
  4.                   ->   -1    

注意,假如任意一个操作数为一个浮点值,则结果为一个浮点值,且不会受到上述规则影响   (关于这一点, DECIMAL 列值被视为浮点值)。     

  1. mysql>   SELECT   CAST(1   AS   UNSIGNED)   -   2.0;     
  2.                   ->   -1.0     
  3.      

若你在一个算术运算中使用了一个字符串,它会被转化为一个浮点数。 

 

 

 

【编辑推荐】

带您了解mysql CONCAT()函数

查看三种MySQL字符集的方法

查看MySQL默认字符集

MySQL定义外键的方法

带参数的MySql存储过程

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/280816.html<

赞 (0)
管理的头像管理
上一篇2025-05-12 17:08
下一篇 2025-05-12 17:10

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注