zoukankan      html  css  js  c++  java
  • MySQL字符串的拼接、截取、替换、查找位置。

    MySQL字符串的拼接、截取、替换、查找位置。

    MySQL中的 CONCAT(sl,s2,...) 函数返回结果为连接参数产生的字符串,或许有一个或多个参数。

    若有任何一个参数为 NULL,则返回值为 NULL。若所有参数均为非二进制字符串,则结果为非二进制字符串。若自变量中含有任一二进制字符串,则结果为一个二进制字符串。

    【实例】使用 CONCAT 函数连接字符串,输入的 SQL 语句和执行结果如下所示。

    mysql> SELECT CONCAT('MySQL','5.7'),CONCAT('MySQL',NULL);
    +-----------------------+----------------------+
    | CONCAT('MySQL','5.7') | CONCAT('MySQL',NULL) |
    +-----------------------+----------------------+
    | MySQL5.7              | NULL                 |
    +-----------------------+----------------------+
    1 row in set (0.03 sec)
    

    常用的字符串函数:

    函数 说明
    CONCAT(s1,s2,...) 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL。
    CONCAT_WS(x,s1,s2,...) 返回多个字符串拼接之后的字符串,每个字符串之间有一个x。
    SUBSTRING(s,n,len)、MID(s,n,len) 两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串。
    LEFT(s,n)、RIGHT(s,n) 前者返回字符串s从最左边开始的n个字符,后者返回字符串s从最右边开始的n个字符。
    INSERT(s1,x,len,s2) 返回字符串s1,其子字符串起始于位置x,被字符串s2取代len个字符。
    REPLACE(s,s1,s2) 返回一个字符串,用字符串s2替代字符串s中所有的字符串s1。
    LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1) 三个函数作用相同,返回子字符串str1在字符串str中的开始位置(从第几个字符开始)。
    FIELD(s,s1,s2,...) 返回第一个与字符串s匹配的字符串的位置。

    1、字符串的拼接

    1.1 CONCAT(s1,s2,...)函数

    返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL。

    SELECT CONCAT('现在的时间:',NOW());  -- 输出结果:现在的时间:2019-01-17 11:27:58
    

    给拼接的字符串添加分隔符:

    SELECT CONCAT(NAME,',',price) FROM demo WHERE id='1';
    

    1.2 CONCAT_WS(x,s1,s2,...)函数

    返回多个字符串拼接之后的字符串,每个字符串之间有一个x。

    SELECT CONCAT_WS(';','博客','K','pan'); -- 输出结果:博客;K;pan
    

    1.3 GROUP_CONCAT

    MySQL 的 GROUP_CONCAT() 函数是一个聚合函数,它将一个集合中的字符串用你指定的分隔符,连接成一个单一的字符串。

    使用示例:

    SELECT locus,GROUP_CONCAT(id) FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus; 
    

    2、字符串的截取

    2.1 SUBSTRING(s,n,len)、MID(s,n,len)函数

    两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串。

    SELECT SUBSTRING('您好,欢迎访问博客',8,14);  -- 输出结果:博客
    
    
    
    SELECT MID('您好,欢迎访问博客',8,14);        -- 输出结果:博客
    

    2.2 LEFT(s,n)、RIGHT(s,n)函数

    前者返回字符串s从最左边开始的n个字符,后者返回字符串s从最右边开始的n个字符。

    SELECT LEFT('您好,欢迎访问博客',7);   -- 输出结果:您好,欢迎访问
    
    
    
    SELECT RIGHT('您好,欢迎访问博客',14); -- 输出结果:博客
    

    3、字符串的替换

    3.1 INSERT(s1,x,len,s2)函数

    返回字符串s1,其子字符串起始于位置x,被字符串s2取代len个字符。

    SELECT INSERT('您好,欢迎访问阿阿的博客',8,2,'pan');  -- 输出结果:您好,欢迎访问pan的博客
    

    3.2 REPLACE(s,s1,s2)函数

    返回一个字符串,用字符串s2替代字符串s中所有的字符串s1。

    SELECT REPLACE('您好,欢迎访问阿标的博客','阿标','pan'); -- 输出结果:您好,欢迎访问pan的博客
    

    4、字符串的查询位置

    4.1 LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)函数

    三个函数作用相同,返回子字符串str1在字符串str中的开始位置(从第几个字符开始)。

    SELECT LOCATE('pan','您好,欢迎访问pan的博客');       -- 输出结果:8
    
    
    
    SELECT POSITION('pan' IN '您好,欢迎访问pan的博客');  -- 输出结果:8
    
    
    
    SELECT INSTR('您好,欢迎访问pan的博客','pan');        -- 输出结果:8
    
  • 相关阅读:
    c#自动更新+安装程序的制作
    VS2013项目受源代码管理向源代码管理注册此项目时出错
    WinDbg配置和使用基础
    InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
    PowerDesigner 如何生成数据库更新脚本
    用户故事(User Story)
    Troubleshooting Record and Playback issues in Coded UI Test
    Coded UI
    compare two oracle database schemas
    How to: Use Schema Compare to Compare Different Database Definitions
  • 原文地址:https://www.cnblogs.com/caibaotimes/p/14311924.html
Copyright © 2011-2022 走看看