zoukankan      html  css  js  c++  java
  • mysql中的字符串截取和替换

    -- 替换 replace(字段名,"需要替换的字符","替换的字符") mysql里replace不支持正则匹配
    mysql> set @needReplaceStr = 'hello world!';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select replace(@needReplaceStr, 'world', 'leyi');
    +-------------------------------------------+
    | replace(@needReplaceStr, 'world', 'leyi') |
    +-------------------------------------------+
    | hello leyi!                               |
    +-------------------------------------------+
    1 row in set (0.00 sec)
    
    
    — 字符串截取的方式替换 SUBSTRING instr或locate
    mysql> set @needReplaceStr = 'hello world!';
    Query OK, 0 rows affected (0.00 sec)
    
    — 等同于 
    select concat(SUBSTRING(@needReplaceStr,1, locate(' ',@needReplaceStr)), 'leyi!');
    
    mysql> select concat(SUBSTRING(@needReplaceStr,1, instr(@needReplaceStr,' ')), 'leyi!');
    +---------------------------------------------------------------------------+
    | concat(SUBSTRING(@needReplaceStr,1, instr(@needReplaceStr,' ')), 'leyi!') |
    +---------------------------------------------------------------------------+
    | hello leyi!                                                               |
    +---------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    
    — left right 截取前几位和后几位字符
    
    mysql> set @needReplaceStr = 'hello world!';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select concat(left(@needReplaceStr, 5), ' leyi!');
    +--------------------------------------------+
    | concat(left(@needReplaceStr, 5), ' leyi!') |
    +--------------------------------------------+
    | hello leyi!                                |
    +--------------------------------------------+
    1 row in set (0.00 sec)
    
    — SUBSTRING_INDEX(str,delim,count)  
    — 如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
    — 如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容
    e.g 截取最后一个逗号之后的内容
    select reverse(SUBSTRING_INDEX(reverse('abc,bde,cfg,dfh,ebv'),',',1))
    select SUBSTRING_INDEX('abc,bde,cfg,dfh,ebv',',',-1)
  • 相关阅读:
    c++11:智能指针
    C++11:右值引用
    结构体与联合体
    数组与指针的区别?
    堆和栈的理论知识
    笔试点杂烩
    2、8、10、16进制输出
    单链表的反转
    签约新国都
    Linux下使用autoconf 和 automake 编译简单的HelloWorld
  • 原文地址:https://www.cnblogs.com/leyi/p/12097392.html
Copyright © 2011-2022 走看看