天天看点

mysql之字符串操作

上篇文章学习了mysql常用的日期操作的函数,这篇文章将学习mysql的字符串操作的函数。

<a href="http://www.cnblogs.com/wolf-sun/p/4491781.html" target="_blank">mysql之创建数据库,创建数据表</a>

<a href="http://www.cnblogs.com/wolf-sun/p/4492592.html">mysql之select,insert,delete,update</a>

<a href="http://www.cnblogs.com/wolf-sun/p/4507590.html">mysql之group by,order by</a>

<a href="http://www.cnblogs.com/wolf-sun/p/4525489.html">mysql之count,max,min,sum,avg,celing,floor</a>

<a href="http://www.cnblogs.com/wolf-sun/p/4603651.html">mysql之日期函数</a>

1、<code>ascii(str)</code>

mysql之字符串操作
mysql之字符串操作
mysql之字符串操作
mysql之字符串操作

2、<code>ord(str)</code>

如果字符串str最左面字符是一个多字节字符,通过以格式<code>((first byte  ascii code)*256+(second byte ascii code))[*256+third byte ascii code...]</code>返 回字符的ascii代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与<code>ascii()</code>函 数返回的相同值

mysql之字符串操作

注意:感觉功能上跟ascii函数差不多,很少用到这个函数。知道有就行了。

3、<code>conv(n,from_base,to_base)</code>

在不同的数字基之间变换数字。返回数字<code>n</code>的字符串数字, 从<code>from_base</code>基变换为<code>to_base</code>基,如果任何参数是<code>null</code>, 返回<code>null</code>。参数<code>n</code>解 释为一个整数,但是可以指定为一个整数或一个字符串。最小基是<code>2</code>且最大的基 是<code>36</code>。如果<code>to_base</code>是 一个负数,<code>n</code>被认为是一个有符号数,否则,<code>n</code>被当作无符号数。 <code>conv</code>以 64位点精度工作。

mysql之字符串操作
mysql之字符串操作
mysql之字符串操作
mysql之字符串操作

4、<code>bin(n)</code>

返回二进制值<code>n</code>的一个字符串表示,在此<code>n</code>是一个长整数(<code>bigint</code>) 数字,这等价于<code>conv(n,10,2)</code>。如果<code>n</code>是<code>null</code>,返回<code>null</code>

mysql之字符串操作

5、<code>oct(n)</code>

返回八进制值<code>n</code>的一个字符串的表示,在此<code>n</code>是一个长整型数字,这等价于<code>conv(n,10,8)</code>。 如果<code>n</code>是null,返回<code>null</code>。

mysql之字符串操作

6、<code>hex(n)</code>

返回十六进制值<code>n</code>一个字符串的表示,在此<code>n</code>是一个长整型(<code>bigint</code>) 数字,这等价于<code>conv(n,10,16)</code>。如果<code>n</code>是<code>null</code>,返回<code>null</code>

mysql之字符串操作

7、<code>char(n,...)</code>

<code>char()</code>将参数解释为整数并且返回 由这些整数的ascii代码字符组成的一个字符串。<code>null</code>值 被跳过。

mysql之字符串操作

8、<code>concat(str1,str2,...)</code> 

返回来自于参数连结的字符串。如果任何参数是<code>null</code>, 返回<code>null</code>。可以有超过2个的参数。一个数字参数被变换为等价的字符串形 式

mysql之字符串操作

 9、<code>length(str)</code>、<code>octet_length(str)</code> 、<code>char_length(str)</code> 、<code>character_length(str)</code>

返回字符串<code>str</code>的长度。

mysql之字符串操作

10、<code>locate(substr,str)</code>、<code>position(substr in str)</code>

返回子串<code>substr</code>在字符串<code>str</code>第一个出现的位置,如果<code>substr</code>不 是在<code>str</code>里面,返回<code>0</code>.

mysql之字符串操作

11、<code>locate(substr,str,pos)</code> 

 返回子串<code>substr</code>在字符串<code>str</code>第一个出现的位置,从位置<code>pos</code>开 始。如果<code>substr</code>不是在<code>str</code>里 面,返回<code>0</code>。

mysql之字符串操作

12、<code>instr(str,substr)</code>

返回子串<code>substr</code>在字符串<code>str</code>中的第一个出现的位置。这与有2个参数形式的<code>locate()</code>相 同,除了参数被颠倒。

mysql之字符串操作

<code>13、lpad(str,len,padstr)</code>

返回字符串<code>str</code>,左面用字符串<code>padstr</code>填补直到<code>str</code>是<code>len</code>个字符长

mysql之字符串操作

14、<code>rpad(str,len,padstr)</code>

返回字符串<code>str</code>,右面用字符串<code>padstr</code>填补直到<code>str</code>是<code>len</code>个字符长。

mysql之字符串操作

15、<code>left(str,len)</code>

返回字符串<code>str</code>的最左面<code>len</code>个字符。

mysql之字符串操作

16、<code>right(str,len)</code>

返回字符串<code>str</code>的最右面<code>len</code>个字符<code>。</code>

mysql之字符串操作

17、<code>substring(str,pos,len)</code>、<code>substring(str from pos for len)</code>、<code>mid(str,pos,len)</code>

从字符串<code>str</code>返回一个<code>len</code>个字符的子串,从位置<code>pos</code>开 始。使用<code>from</code>的变种形式是ansi sql92语法。

mysql之字符串操作

 18、<code>substring_index(str,delim,count)</code>

返回从字符串<code>str</code>的第<code>count</code>个出现<code>的</code>分 隔符<code>delim</code>之前的子串。如果<code>count</code>是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果<code>count</code>是负数,则反之。

mysql之字符串操作
mysql之字符串操作

注意:其实也好理解,count为正数,取从左到右第count分隔符左边的字符串,如果为负数,则取从右到左第count个分隔符右边的字符串。

19、<code>ltrim(str)</code>

返回删除了其前置空格字符的字符串<code>str</code>。

mysql之字符串操作

20、<code>rtrim(str)</code>

返回删除了字符串后面的空格字符的字符串<code>str</code>。

mysql之字符串操作

21、<code>trim([[both | leading |  trailing] [remstr] from] str)</code>

返回字符串<code>str</code>,其所有<code>remstr</code>前缀或后缀被删除了。如果没有修饰符<code>both</code>、<code>leading</code>或<code>trailing</code>给 出,<code>both</code>被假定。如果<code>remstr</code>没 被指定,空格被删除。

mysql之字符串操作
mysql之字符串操作
mysql之字符串操作
mysql之字符串操作

22、<code>soundex(str)</code>

返回<code>str</code>的一个同音字符串。听起来“大致相同”的2个 字符串应该有相同的同音字符串。一个“标准”的同音字符串长是4个字符,但是<code>soundex()</code>函 数返回一个任意长的字符串。你可以在结果上使用<code>substring()</code>得到 一个“标准”的 同音串。所有非数字字母字符在给定的字符串中被忽略。所有在a-z之外的字符国际字母被当作元音。

mysql之字符串操作

23、<code>space(n)</code>

返回由<code>n</code>个空格字符组成的一个字符串。

24、<code>replace(str,from_str,to_str)</code>

返回字符串<code>str</code>,其字符串<code>from_str</code>的所有出现由字符串<code>to_str</code>代 替。

mysql之字符串操作

25、<code>repeat(str,count)</code>

返回由重复<code>count</code>times次的字符串<code>str</code>组成的一个字符串。如果<code>count  &lt;= 0</code>,返回一个空字符串。如果<code>str</code>或<code>count</code>是<code>null</code>, 返回<code>null</code>。

mysql之字符串操作

26、<code>reverse(str)</code>

反向输出字符串

mysql之字符串操作

27、<code>insert(str,pos,len,newstr)</code>

返回字符串<code>str</code>,在位置<code>pos</code>起始的子串且<code>len</code>个 字符长得子串由字符串<code>newstr</code>代替

mysql之字符串操作

28、<code>elt(n,str1,str2,str3,...)</code>

如果<code>n</code>= <code>1</code>,返回<code>str1</code>,如 果<code>n</code>= <code>2</code>, 返回<code>str2</code>,等等。如果<code>n</code>小 于<code>1</code>或大于参数个数,返回<code>null</code>。<code>elt()</code>是<code>field()</code>反 运算。

mysql之字符串操作

29、<code>field(str,str1,str2,str3,...)</code>  

返回<code>str</code>在<code>str1</code>, <code>str2</code>,  <code>str3</code>, <code>...</code>清 单的索引。如果<code>str</code>没找到,返回<code>0</code>。<code>field()</code>是<code>elt()</code>反运算。

mysql之字符串操作

30、<code>find_in_set(str,strlist)</code>

如果字符串<code>str</code>在由<code>n</code>子串组成的表<code>strlist</code>之 中,返回一个<code>1</code>到<code>n</code>的 值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是 一个常数字符串并且第二个参数是一种类型为<code>set</code>的列,<code>find_in_set()</code>函数被优化而使用位运算!如果<code>str</code>不是在<code>strlist</code>里 面或如果<code>strlist</code>是空字符串,返回<code>0</code>。如果任何一个参数是<code>null</code>, 返回<code>null</code>。如果第一个参数包含一个“,”,该函数将工作不正常。

mysql之字符串操作

31、<code>make_set(bits,str1,str2,...)</code>  

返回一个集合 (包含由“,”字符分隔的子串组成的一个 字符串),由相应的位在<code>bits</code>集合中的的字符串组成。<code>str1</code>对应于位0,<code>str2</code>对 应位1,等等。在<code>str1</code>, <code>str2</code>, <code>...</code>中 的<code>null</code>串不添加到结果中。

mysql之字符串操作

32、<code>export_set(bits,on,off,[separator,[number_of_bits]])</code>

返回一个字符串,在这里对于在“bits”中设定每一位,你得到一个“on”字符串,并且对于每个复位(reset)的位,你得到一个 “off”字符串。每个字符串用“separator”分隔(缺省“,”),并且只有“bits”的“number_of_bits”  (缺省64)位被使用。

mysql之字符串操作

33、<code>lcase(str)</code>、<code>lower(str)</code>

返回字符串<code>str</code>,根据当前字符集映射(缺省是iso- 8859-1 latin1)把所有的字符改变成小写。该函数对多字节是可靠的。

mysql之字符串操作

34、<code>ucase(str)</code>、<code>upper(str)</code>

返回字符串<code>str</code>,根据当前字符集映射(缺省是iso- 8859-1 latin1)把所有的字符改变成大写。该函数对多字节是可靠的。与lower函数相反,转换成大写。不再赘述。

35、<code>load_file(file_name)</code>

读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权 限。文件必须所有内容都是可读的并且小于<code>max_allowed_packet</code>。 如果文件不存在或由于上面原因之一不能被读出,函数返回<code>null</code>。

(很少用到,感兴趣的可以另外查找)。

在整理字符串的函数时,也很以外,竟然有这么多函数。平时用到的就那么几个,今天算是长见识了。

参考

http://www.cnblogs.com/showker/archive/2010/03/15/1685874.html

博客地址:

<a href="http://www.cnblogs.com/wolf-sun">http://www.cnblogs.com/wolf-sun/</a>

博客版权:

本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。

如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!

再次感谢您耐心的读完本篇文章。http://www.cnblogs.com/wolf-sun/p/4605379.html

继续阅读