|
mysql> SELECT RPAD('hi',5,'?'); -> 'hi???'
LEFT(str,len) 返回字符串 str 中最左边的 len 个字符:
mysql> SELECT LEFT('foobarbar', 5); -> 'fooba'
这个函数是多字节安全的。
RIGHT(str,len) 返回字符串 str 中最右边的 len 个字符:
mysql> SELECT RIGHT('foobarbar', 4); -> 'rbar'
这个函数是多字节安全的。phpma
SUBSTRING(str,pos,len) SUBSTRING(str FROM pos FOR len) MID(str,pos,len) 从字符串 str 的 pos 位置起返回 len 个字符的子串。使用 FROM 的变体形式是 ANSI SQL92 的句法:
mysql> SELECT SUBSTRING('Quadratically',5,6); -> 'ratica'
这个函数是多字节安全的。
SUBSTRING(str,pos) SUBSTRING(str FROM pos) 从字符串 str 的 pos 位置起返回子串:
mysql> SELECT SUBSTRING('Quadratically',5); -> 'ratically' mysql> SELECT SUBSTRING('foobarbar' FROM 4); -> 'barbar'
这个函数是多字节安全的。
SUBSTRING_INDEX(str,delim,count) 返回字符串 str 中在第 count 个出现的分隔符 delim 之前的子串。如果 count 是一个正数,返回从最后的(从左边开始计数)分隔符到左边所有字符。如果 count 是负数,返回从最后的(从右边开始计数)分隔符到右边所有字符:
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); -> 'www.mysql' mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2); -> 'mysql.com'
这个函数是多字节安全的。phpma
LTRIM(str) 返回移除了领头的空格字符后的 str:
mysql> SELECT LTRIM(' barbar'); -> 'barbar'
RTRIM(str) 返回移除了尾部的空格字符后的 str:
mysql> SELECT RTRIM('barbar '); -> 'barbar'
这个函数是多字节安全的。
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str) 移除字符串 str 中所有的 remstr 前缀或后缀,然后将其返回。如果没有任何 BOTH、LEADING 或 TRAILING 修饰符被给出,BOTH 被假定。如果 remstr 没有被指定,空格将被移除:
mysql> SELECT TRIM(' bar '); -> 'bar' mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); -> 'barxxx' mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); -> 'bar' mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -> 'barx'
这个函数是多字节安全的。
SOUNDEX(str) 返回 str 的近音字。两个发音差不多的字符串应该有同样的近音字。一个标准的近音字为 4 个字符长,但是函数 SOUNDEX() 却返回一个任意长的字符串。你可以在结果上使用 SUBSTRING() 标准的近音字。提供的字符中所有的非数字字母的字符均被忽略。所有在 A-Z 范围之外的国际 alpha 字符被视为元音:
mysql> SELECT SOUNDEX('Hello'); -> 'H400' mysql> SELECT SOUNDEX('Quadratically'); -> 'Q36324'
SPACE(N) 返回有 N 空格字符组成的字符串:phpma
mysql> SELECT SPACE(6); -> ' '
REPLACE(str,from_str,to_str) 在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串:
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww'); -> 'WwWwWw.mysql.com'
这个函数是多字节安全的。
REPEAT(str,count) 返回一个由重复了 count 次的字符串 str 组成的字符串。如果 count <= 0,返回一个空字符串。如果 str 或 count 是 NULL,返回值也为 NULL:
mysql> SELECT REPEAT('MySQL', 3); -> 'MySQLMySQLMySQL'
REVERSE(str) 以颠倒的字符顺序返回字符串 str:
mysql> SELECT REVERSE('abc'); -> 'cba'
这个函数是多字节安全的。phpma
INSERT(str,pos,len,newstr) 在字符串 str 中,将从 pos 位置开始,len 个字符长的子串替换为字符串 newstr ,然后将结果返回:
mysql> SELECT INSERT('Quadratic', 3, 4, 'What'); -> 'QuWhattic'
这个函数是多字节安全的。
ELT(N,str1,str2,str3,...) 如果 N = 1,返回 str1,如果N = 2,返回 str2,等等。如果 N 小于 1 或大于参数的数量,返回 NULL。ELT() FIELD() 反运算:
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo'); -> 'ej' mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo'); -> 'foo'
FIELD(str,str1,str2,str3,...) 返回 str 在列表 str1, str2, str3, ... 中的索引。如果 str 没有发现,返回 0。FIELD() 是 ELT() 的反运算:
mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 2 mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 0
FIND_IN_SET(str,strlist) Returns a value 如果字符串 str 在由 N 个子串组成的列表 strlist 中,返回一个 1 到 N 的值。一个字符串列表是由通过字符 “,” 分隔的多个子串组成。如果第一个参数是一个常数字符串,并且第二个参数是一个 SET 列类型,FIND_IN_SET() 函数将被优化为使用位运算!如果 str 在不 strlist 中或者如果 strlist 是一个空串,返回值为 0。如果任何一个参数为 NULL,返回值也是 NULL。如果第一个参数包含一个 “,”,这个函数将完全不能工作:
mysql> SELECT FIND_IN_SET('b','a,b,c,d'); -> 2
MAKE_SET(bits,str1,str2,...) 返回一个集合 (包含由字符 “,” 分隔的多个子串组成的一个字符串),它由在 bits 集合中有相应的比特位的字符串组成。str1 对应于比特位 0,str2 对应比特位 1,等等。在 str1, str2, ... 中的 NULL 串不允许被添加到结果中:
mysql> SELECT MAKE_SET(1,'a','b','c'); -> 'a' mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world'); -> 'hello,world' mysql> SELECT MAKE_SET(0,'a','b','c'); -> ''
EXPORT_SET(bits,on,off,[separator,[number_of_bits]]) 返回一个字符串,对于在 'bits' 中的每个比特字位,你将得到一个 'on' 字符,而如果比特字位是一个清零比特位(reset bit)你将得到一个 'off' 字符串。每个字符串均被“分隔符”(缺省为“,”)分隔,并且只有 'number_of_bits'(缺省为 64) 个 'bits' 被使用:
mysql> SELECT EXPORT_SET(5,'Y','N',',',4) -> Y,N,Y,N
示例(译者注):
mysql> select EXPORT_SET(1,'1','0','',5); -> 10000 # 最左边第一位为 2 的 0 次幂
mysql> select EXPORT_SET(2,'1','0','',5);
(阅读次数:)
共12页: 上一页 [1] [2] [3] 4 [5] [6] [7] [8] [9] [10] [11] [12] 下一页
|