MYSQL Cast函数是非常重要的MYSQL函数,下面就将为您详细介绍MYSQL Cast函数的语法及其使用,希望能让您对MYSQL Cast函数有更多的认识。
BINARY
BINARY操作符将后面的字符串抛给一个二进制字符串。这是一种简单的方式来促使逐字节而不是逐字符的进行列比较。这使得比较区分大小写,即使该列不被定义为BINARY或BLOB。BINARY也会产生结尾空白,从而更加显眼。
- mysql>
SELECT 'a' = 'A'; -
-
-> 1 -
- mysql>
SELECT BINARY 'a' = 'A'; -
-> 0 - mysql>
SELECT 'a' = 'a '; -
-> 1 - mysql>
SELECT BINARY 'a' = 'a '; -
-> 0
BINARY影响整个比较;它可以在任何操作数前被给定,而产生相同的结果。
BINARY
注意,在一些语境中,假如你将一个编入索引的列派给BINARY,
假如你想要将一个BLOB值或其它二进制字符串进行区分大小写的比较,你可利用二进制字符串没有字符集这一事实实现这个目的,这样就不会有文书夹的概念。为执行一个区分大小写的比较,可使用CONVERT()函数将一个字符串值转化为一个不区分大小写的字符集。其结果为一个非二进制字符串,因此LIKE操作也不会区分大小写:
- SELECT
'A' LIKE CONVERT(blob_col USING latin1) FROM tbl_name;
若要使用一个不同的字符集,
CONVERT()一般可用于比较出现在不同字符集中的字符串。
CAST(expr
CAST()
这个类型
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED
TIME
UNSIGNED
BINARY
假如给定了随意长度N,则
- CAST()
and CONVERT(... USING ...) 是标准SQL语法。CONVERT()的非USING 格式是ofis ODBC语法。
带有USING的CONVERT()
- SELECT
CONVERT('abc' USING utf8);
当你想要在一个CREATE
- CREATE
TABLE new_table SELECT CAST('2000-01-01' AS DATE);
该函数也用于ENUM
- SELECT
enum_col FROM tbl_name ORDER BY CAST(enum_col AS CHAR);
CAST(str
若用于一个诸如CONCAT('Date:
你不应在不同的格式中使用CAST()来析取数据,但可以使用诸如LEFT()
若要在数值语境中将一个字符串派给一个数值,
- mysql>
SELECT 1+'1'; -
-> 2
若要在一个字符串语境中使用一个数字,该数字会被自动转化为一个BINARY
- mysql>
SELECT CONCAT('hello you ',2); -
-> 'hello you 2'
MySQL支持带符号和无符号的64比特值的运算。若你正在使用数字操作符(如
- mysql>
SELECT CAST(1-2 AS UNSIGNED) -
-> 18446744073709551615 - mysql>
SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED); -
-> -1
注意,假如任意一个操作数为一个浮点值,则结果为一个浮点值,且不会受到上述规则影响
- mysql>
SELECT CAST(1 AS UNSIGNED) - 2.0; -
-> -1.0 -
若你在一个算术运算中使用了一个字符串,它会被转化为一个浮点数。