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 空格字符组成的字符串:
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'
这个函数是多字节安全的。
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');
-> ''