MySQL 4.1.0 中文参考手册 --- 6.3 用于 SELECT 和 WHERE 子句的函数 (1)[5]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 shuixin13 的 blog

如果表达式(expr2)和表达式(expr3)均是字符串,同时两个字符串均是忽略字母大小写的,那么返回值也是忽略字母大小写的(从 mysql 3.23.51 开始)。

case value when [compare-value] then result [when [compare-value] then result ...] [else result] end
case when [condition] then result [when [condition] then result ...] [else result] end
第一个形式当 value=compare-value 时返回 result。第二个形式当第一个为真值的 condition 出现时,返回该条件的结果。如果没有匹配的结果值,那么 else 后的结果将被返回。如果没有 else 部分,那么 null 被返回:
mysql> select case 1 when 1 then "one"
           when 2 then "two" else "more" end;
       -> "one"
mysql> select case when 1>0 then "true" else "false" end;
       -> "true"
mysql> select case binary "b" when "a" then 1 when "b" then 2 end;
       -> null

返回值的类型 (integerdoublestring) 与第一个返回值(第一个 then 后的表达式)的类型相同。

6.3.2 字符串函数

如果返回结果的长度超过服务器参数 max_allowed_packet 的大小,字符串值函数将返回 null。查看章节 5.5.2 调节服务器参数

对于操作字符串位置的函数,第一个位置被标记为 1。

ascii(str)
返回字符串 str 最左边的那个字符的 ascii 码值。如果 str 是一个空字符串,那么返回值为 0。如果 str 是一个 null,返回值也是 null
mysql> select ascii('2');
        -> 50
mysql> select ascii(2);
        -> 50
mysql> select ascii('dx');
        -> 100
也可参看 ord() 函数。

ord(str)
如果字符串 str 的最左边的字符是一个多字节的字符,根据多字节字符的成分字符的 ascii 码值通过下面的公式计算返回那个的编码:((first byte ascii code)*256+(second byte ascii code))[*256+third byte ascii code...]。如果最左边的字符不是一个多字节字符,返回值与 ascii() 函数相同:
mysql> select ord('2');
        -> 50
conv(n,from_base,to_base)
在不同的数字基数之间转换数字。将数字 nfrom_base 转换到 to_base,并以字符串表示形式返回。如果任何一个参数为 null,那么返回值也为 null。参数 n 被解释为是一个整数,但是也可以被指定为一个整数或一个字符串。最小基为 2,最大基为 36。如果 to_base 是一个负值,n 将被看作为是一个有符号数字。否则,n 被视为是无符号的。conv 以 64 位精度工作:
mysql> select conv("a",16,2);
        -> '1010'
mysql> select conv("6e",18,8);
        -> '172'
mysql> select conv(-17,10,-18);
        -> '-h'
mysql> select conv(10+"10"+'10'+0xa,10,10);
        -> '40'
bin(n)
返回 n 的字符串表示的二进制值形式,在这里,n 长长的(bigint)数字。这个函数等价于 conv(n,10,2)。如果 n 是一个 null,返回值也是 null
mysql> select bin(12);
        -> '1100'
oct(n)
返回 n 的字符串表示的八进制值形式,在这里,n 是一个长长的数字。这个函数等价于 conv(n,10,8)。如果 n 是一个 null,返回值也是 null
mysql> select oct(12);
        -> '14'
hex(n_or_s)
如果 n_or_s 是一个数字,返回 n 的字符串表示的十六进制值形式,这里 n 是一个长长的(bigint)数字。这个函数等价于 conv(n,10,16)。 如果 n_or_s 是一个字符串,n_or_s 中的每个字符均被转换为 2 位十六进制数字,并以十六进制的字符串形式返回。这是 0xff 形式的字符串反转操作。
mysql> select hex(255);
        -> 'ff'
mysql> select hex("abc");
        -> 616263
mysql> select 0x616263;
        -> "abc"
char(n,...)
char() 以整数类型解释参数,返回这个整数所代表的 ascii 码值给出的字符组成的字符串。null 值将被忽略:
mysql> select char(77,121,83,81,'76');
        -> 'mysql'
mysql> select char(77,77.3,'77.3');
        -> 'mmm'
concat(str1,str2,...)
将参数连接成字符串返回。如果有任何一个参数为 null,返回值也为 null。可以有超过 2 个的参数。数字参数将被转换为相等价的字符串形式:
mysql> select concat('my', 's', 'ql');
        -> 'mysql'
mysql> select concat('my', null, 'ql');
        -> null
mysql> select concat(14.3);
        -> '14.3'
concat_ws(separator, str1, str2,...)
concat_ws() 支持 concat 加上一个分隔符,它是一个特殊形式的 concat()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 null,返回值也将为 null。这个函数会跳过分隔符参数后的任何 null 和空字符串。分隔符将被加到被连接的字符串之间:
mysql> select concat_ws(",","first name","second name","last name");
       -> 'first name,second name,last name'
mysql> select concat_ws(",","fi

本文关键:MySQL 4.1.0 中文
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top