MySQL截取和拆分字符串函数用法示例

 更新时间:2016年09月29日 14:13:04   作者:山猫的博客  
这篇文章主要介绍了MySQL截取和拆分字符串函数用法,结合实例形式分析了mysql针对字符串的截取与拆分函数SUBSTRING及SUBSTRING_INDEX相关使用方法,需要的朋友可以参考下

本文实例讲述了MySQL截取和拆分字符串函数用法。分享给大家供大家参考,具体如下:

首先说截取字符串函数:

SUBSTRING(commentid,9)

这个很简单,从第9个字符开始截取到最后。SUBSTRING的参数有三个,最后一个是截取的长度,默认是到结尾,负数是倒数第几位。

接着说拆分字符串函数:

SUBSTRING_INDEX(commentid, '-', 1)

这个就稍稍复杂一些了,他的意思是以 - 进行拆分字符串,从第一个关键词开始取前面所有的字符串。如果上面的第三个参数修改为 -1,那么就是取倒数第一个。如果我们想从字符串 c-11065-50 中,取出50或者11065如何写呢?

取得50的写法:

复制代码 代码如下:
SELECT SUBSTRING_INDEX(checkid,'-',-1) FROM `check` WHERE checkid = 'c-11065-50'

取得11065的写法:
复制代码 代码如下:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(checkid,'-',-2),'-',1) FROM check WHERE checkid = 'c-11065-50'

或者:
复制代码 代码如下:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(checkid,'-',2),'-',-1) FROM check WHERE checkid = 'c-11065-50'

看上去比较复杂了吧,那么再来点更复杂的:

这下面就是组合用法了,例如我们要截取:content_13-11220-1中的13,最简单的就是:

复制代码 代码如下:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING(commentid,9), '-', 1), '-',-1) FROM check WHERE commentid = 'content_13-11220-1'

我们发现这里需要调用三次函数,有没有可以调用两次的呢。于是我们可以这样写:
复制代码 代码如下:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(commentid, '-', 1), '_',-1) FROM check WHERE commentid = 'content_13-11220-1'

这样就可以少执行一次函数了,当我们运行的数据足够多,那么速度也就显示的很明显了。

MySQL更多函数可参考MySQL函数大全:https://www.jb51.net/article/42906.htm

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总

希望本文所述对大家MySQL数据库计有所帮助。

相关文章

  • mysql 批量更新与批量更新多条记录的不同值实现方法

    mysql 批量更新与批量更新多条记录的不同值实现方法

    在mysql中批量更新我们可能使用update,replace into来操作,下面小编来给各位同学详细介绍mysql 批量更新与性能吧
    2013-10-10
  • 将数据插入到MySQL表中的详细教程

    将数据插入到MySQL表中的详细教程

    这篇文章主要介绍了将数据插入到MySQL表中的详细教程,文中给出了在PHP脚本中操作的示例,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • mysql数据库实现超键、候选键、主键与外键的使用

    mysql数据库实现超键、候选键、主键与外键的使用

    数据库设计时,关键字的概念至关重要,本文就来介绍一下mysql数据库实现超键、候选键、主键与外键的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-09-09
  • MySQL 数据类型 大全

    MySQL 数据类型 大全

    mysql下的一些数据类型,后面附有类型的说明。
    2009-04-04
  • MySQL里面的子查询实例

    MySQL里面的子查询实例

    最近学习php+mysql执行操作,发现了这一篇实例代码
    2008-04-04
  • MySQL锁等待排查的问题解决

    MySQL锁等待排查的问题解决

    本文主要介绍了MySQL如何排查锁等待问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • MySQL快速插入大量数据的解决方案和代码示例

    MySQL快速插入大量数据的解决方案和代码示例

    在这篇博客中,我们将深入探讨如何高效插入大量数据到MySQL数据库,无论你是数据库新手还是经验丰富的开发者,这篇文章都将为你提供实用的解决方案和代码示例,帮助你解决插入3万条数据需要20多秒的问题,需要的朋友可以参考下
    2024-08-08
  • mysql binlog查看指定数据库的操作方法

    mysql binlog查看指定数据库的操作方法

    MySQL 的 binlog(二进制日志)主要记录了数据库上执行的所有更改数据的 SQL 语句,包括数据的插入、更新和删除等操作这篇文章主要介绍了mysql binlog查看指定数据库的方法,需要的朋友可以参考下
    2024-06-06
  • 查看修改mysql编码方式让它支持中文(gbk或者utf8)

    查看修改mysql编码方式让它支持中文(gbk或者utf8)

    MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8,真的是很麻烦啊,不过本文提供了详细的修改教程,感兴趣的你可不要走开啊,希望本文对你有所帮助
    2013-01-01
  • 这种sql写法真的会导致索引失效吗

    这种sql写法真的会导致索引失效吗

    这篇文章主要给大家介绍了关于网上流传的某种sql写法会导致索引失效的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用sql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07

最新评论