字符串函数是最常用的一种函数了,如果大家编写过程序的话,不妨回过头去看看自己使用过的函数,可能会惊讶地发现字符串处理的相关函数占已使用过的函数很大一部分。MySQL中字符串函数也是最丰富的一类函数,表5-1 中列出了这些函数以供参考。

  下面通过具体的实例来逐个地研究每个函数的用法,需要注意的是这里的例子仅仅在于说明各个函数的使用方法,所以函数都是单个出现的,但是在一个具体的应用中通常可能需要综合几个甚至几类函数才能实现相应的应用。
   CANCAT(S1,S2,…Sn)函数:把传入的参数连接成为一个字符串。

  下面的例子把“aaa”、“bbb”、“ccc”3 个字符串连接成了一个字符串“aaabbbccc”。另外,任何字符串与NULL 进行连接的结果都将是NULL。

  1. mysql> select concat('aaa','bbb','ccc') ,concat('aaa',null);
  2. +---------------------------+--------------------+
  3. | concat('aaa','bbb','ccc') | concat('aaa',null) |
  4. +---------------------------+--------------------+
  5. | aaabbbccc | NULL |
  6. +---------------------------+--------------------+
  7. 1 row in set (0.05 sec)

  INSERT(str ,x,y,instr)函数:将字符串str 从第x 位置开始,y 个字符长的子串替换为字符串instr。

  下面的例子把字符串“beijing2008you”中的从第12 个字符开始以后的3 个字符替换成“me”。

  1. mysql> select INSERT('beijing2008you',12,3, 'me') ;
  2. +-------------------------------------+
  3. | INSERT('beijing2008you',12,3, 'me') |
  4. +-------------------------------------+
  5. | beijing2008me |
  6. +-------------------------------------+
  7. 1 row in set (0.00 sec)

 LOWER(str)和UPPER(str)函数:把字符串转换成小写或大写。
在字符串比较中,通常要将比较的字符串全部转换为大写或者小写,如下例所示:

  1. mysql> select LOWER('BEIJING2008'), UPPER('beijing2008');
  2. +----------------------+----------------------+
  3. | LOWER('BEIJING2008') | UPPER('beijing2008') |
  4. +----------------------+----------------------+
  5. | beijing2008 | BEIJING2008 |
  6. +----------------------+----------------------+
  7. 1 row in set (0.00 sec)

 LEFT(str,x)和 RIGHT(str,x)函数:分别返回字符串最左边的x 个字符和最右边的x 个字符。如果第二个参数是NULL,那么将不返回任何字符串。
 下例中显示了对字符串“beijing2008”应用函数后的结果。

  1. mysql> SELECT LEFT('beijing2008',7),LEFT('beijing',null),RIGHT('beijing2008',4);
  2. +-----------------------+----------------------+------------------------+
  3. | LEFT('beijing2008',7) | LEFT('beijing',null) | RIGHT('beijing2008',4) |
  4. +-----------------------+----------------------+------------------------+
  5. | beijing | | 2008 |
  6. +-----------------------+----------------------+------------------------+
  7. 1 row in set (0.00 sec)

 LPAD(str,n ,pad)和 RPAD(str,n ,pad)函数:用字符串pad 对str 最左边和最右边进行填充,
直到长度为n 个字符长度。下例中显示了对字符串“2008”和“beijing”分别填充后的结果。

  1. mysql> select lpad('',20,'beijing'),rpad('beijing',20,'');
  2. +---------------------------+---------------------------+
  3. | lpad('',20,'beijing') | rpad('beijing',20,'') |
  4. +---------------------------+---------------------------+
  5. | beijingbeijingbe2008 | beijing2008200820082 |
  6. +---------------------------+---------------------------+
  7. 1 row in set (0.00 sec)

 LTRIM(str)和 RTRIM(str)函数:去掉字符串str 左侧和右侧空格。
   下例中显示了字符串“beijing”加空格进行过滤后的结果。

  1. mysql> select ltrim(' |beijing'),rtrim('beijing| ');
  2. +---------------------+------------------------+
  3. | ltrim(' |beijing') | rtrim('beijing| ') |
  4. +---------------------+------------------------+
  5. | |beijing | beijing| |
  6. +---------------------+------------------------+
  7. 1 row in set (0.00 sec)

 REPEAT(str,x)函数:返回str 重复x 次的结果。
   下例中对字符串“mysql”重复显示了3 次。

  1. mysql> select repeat('mysql ',3);
  2. +--------------------+
  3. | repeat('mysql ',3) |
  4. +--------------------+
  5. | mysql mysql mysql |
  6. +--------------------+
  7. 1 row in set (0.00 sec)

 REPLACE(str,a,b)函数:用字符串b 替换字符串str 中所有出现的字符串a。
   下例中用字符串“2008”代替了字符串“beijing_2010”中的“_2010”。

  1. mysql> select replace('beijing_2010','_2010','');
  2. +----------------------------------------+
  3. | replace('beijing_2010','_2010','') |
  4. +----------------------------------------+
  5. | beijing2008 |
  6. +----------------------------------------+
  7. 1 row in set (0.00 sec)

STRCMP(s1,s2)函数:比较字符串s1 和s2 的ASCII 码值的大小。如果s1 比s2 小,那么返回-1;
如果s1 与s2 相等,那么返回0;如果s1 比s2 大,那么返回1。如下例:

  1. mysql> select strcmp('a','b'),strcmp('b','b'),strcmp('c','b');
  2. +-----------------+-----------------+-----------------+
  3. | strcmp('a','b') | strcmp('b','b') | strcmp('c','b') |
  4. +-----------------+-----------------+-----------------+
  5. | -1 | 0 | 1 |
  6. +-----------------+-----------------+-----------------+
  7. 1 row in set (0.00 sec)

 TRIM(str)函数:去掉目标字符串的开头和结尾的空格。
下例中对字符串“$ beijing2008 $ ”进行了前后空格的过滤。

  1. mysql> select trim(' $ beijing2008 $ ');
  2. +-----------------------------+
  3. | trim(' $ beijing2008 $ ') |
  4. +-----------------------------+
  5. | $ beijing2008 $ |
  6. +-----------------------------+
  7. 1 row in set (0.00 sec)

 SUBSTRING(str,x,y)函数:返回从字符串str 中的第x 位置起y 个字符长度的字串。
    此函数经常用来对给定字符串进行字串的提取,如下例所示。

  1. mysql> select substring('beijing2008',8,4),substring('beijing2008',1,7);
  2. +------------------------------+------------------------------+
  3. | substring('beijing2008',8,4) | substring('beijing2008',1,7) |
  4. +------------------------------+------------------------------+
  5. | 2008 | beijing |
  6. +------------------------------+------------------------------+

Mysql 字符串函数 详解的更多相关文章

  1. python pandas字符串函数详解(转)

     pandas字符串函数详解(转)——原文连接见文章末尾 在使用pandas框架的DataFrame的过程中,如果需要处理一些字符串的特性,例如判断某列是否包含一些关键字,某列的字符长度是否小于3等等 ...

  2. Mysql 字符函数详解

    MySql 所有字符串函数函数详解 ASCII(str) 返回str最左边第一位字符的ASCII编码,如果str为空,则返回 0 .如果str为NULL,则返回NULL -- 只返回a的ASCII编码 ...

  3. oracle中的字符串函数详解

    花了点时间 复习.了一下字符串函数 希望对初学者有帮助 ----------连接字符串函数-----------------select concat('leiyi','hubei') from du ...

  4. MySQL 字符串拼接详解

    在Mysql 数据库中存在两种字符串连接操作.具体操作如下一. 语法:   1. CONCAT(string1,string2,…)   说明 : string1,string2代表字符串,conca ...

  5. mysql find_in_set函数详解

    Mysql函数FIND_IN_SET()的使用方法 有了FIND_IN_SET这个函数.我们可以设计一个如:一只手机即是智能机,又是Andriod系统的. 比如:有个产品表里有一个type字段,他存储 ...

  6. 使用JS截取字符串函数详解

    一.函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=”jpg|bmp|gif|ico|png”; arr=theString.split(”|”); //a ...

  7. C++ string 字符串函数详解

    运算符重载 + 和 +=:连接字符串 =:字符串赋值 >.>=.< 和 <=:字符串比较(例如a < b, aa < ab) ==.!=:比较字符串 << ...

  8. c语言字符串函数详解

    转载请注明来源:https://www.cnblogs.com/hookjc/ oid *memset(void *dest, int c, size_t count); 将dest前面count个字 ...

  9. php字符串函数详解

    nl2br 功能:化换行符为<br> <?php $str = "cat isn't \n dog"; $result = nl2br($str); echo $ ...

随机推荐

  1. OOW 2015 MYSQL

    https://events.rainfocus.com/oow15/catalog/oracle.jsp?search.event=openworldEvent&search.mysql=d ...

  2. nginx实现openfire负载均衡

    Nginx版本必须是1.9以上,不然不支持tcp连接,要么加入其他插件 在nginx.conf文件中加入下图中的代码,图中的ip与端口配成自己的,配置好后,客户端请求listen监听的端口,ip为ng ...

  3. 【mybatis】mybatis动态order by 的问题, 注意 只需要把#{} 改成 ${} 即可

    先说解决方案: 注意  只需要把#{} 改成 ${}  即可 再看 使用过程: Mapper.java List<IntegralGoods> findInUid(@Param(" ...

  4. Python学习(四)数据结构 —— str

    Python 字符串 str 本章大致介绍了 Python 的字符串类型 str,包括字符串的赋值及转义.字符串运算符.字符串格式化输出 以及 一些字符串的内建函数等. 字符串赋值及转义 我们可以使用 ...

  5. Struts2数据验证机制

    1. 手动验证的实现 只需要在继承ActionSupport类的情况下,直接重写validate()方法即可.使用validate()方法可以对用户请求的多个Action方法进行验证,但其验证的逻辑是 ...

  6. openssl https 单向认证连接成功示例

    研究这个玩意也有几天的时间了,刚学C 因为不熟悉编译折腾了不少时间,终于弄通了,发个随笔给研究openssl https的同学一点提示吧. 环境: ========================== ...

  7. 数学图形(2.15)Spherical sinusoid球面正弦曲线

    这个曲线与之前的数学图形(2.7)sphere sine wave很相似.而且个人觉得从其公式上看sphere sine wave更应该叫做球面正弦曲线.当然从渲染的曲线图上看,它是非常明显的贴在球上 ...

  8. Ubuntu 12.04 LTS安装Windows字体

    内容参考自别人的博客:http://www.cnblogs.com/zhj5chengfeng/p/3251009.html 1. 为了方便,先将Windows字体拷贝到~/WinFonts下. 我是 ...

  9. http响应报文,如果响应的内容比较大,客户端怎么样判断接收完了呢?

    1.   http协议有正文大小说明的content-length 2. 或者分块传输chunked的话  读到0\r\n\r\n 就是读完了 ---------------------------- ...

  10. 【论文笔记】Leveraging Datasets with Varying Annotations for Face Alignment via Deep Regression Network

    參考文献: Zhang J, Kan M, Shan S, et al. Leveraging Datasets With Varying Annotations for Face Alignment ...