首页
学习
活动
专区
圈层
工具
发布

mysql中的截取函数

MySQL中的截取函数主要用于从字符串中提取子字符串。常用的截取函数有SUBSTRING()、SUBSTRING_INDEX()和LEFT()/RIGHT()等。

基础概念

  • SUBSTRING(): 从指定位置开始截取指定长度的子字符串。
  • SUBSTRING_INDEX(): 根据分隔符截取子字符串,可以指定截取的位置(第一个、最后一个等)。
  • LEFT(): 从左侧开始截取指定长度的子字符串。
  • RIGHT(): 从右侧开始截取指定长度的子字符串。

相关优势

  • 灵活性高:可以根据不同的需求选择不同的截取函数和参数。
  • 易于使用:函数语法简洁明了,易于理解和应用。
  • 高效性能:MySQL内置的截取函数经过优化,执行效率高。

类型与应用场景

  1. SUBSTRING()
  2. SUBSTRING_INDEX()
  3. LEFT() 和 RIGHT()

常见问题及解决方法

  1. 截取位置错误
  2. 截取长度错误
  3. 分隔符不存在

通过合理使用MySQL中的截取函数,可以方便地对字符串进行处理和分析。如需更多信息,建议查阅MySQL官方文档或参考相关教程资源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL截取字符串函数方法

今天建视图时,用到了MySQL中的字符串截取,很是方便。 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用。...函数: 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例: select left(content,200) as abstract from my_content_t...,5,200) as abstract from my_content_t (注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度) 4、按关键字截取字符串 substring_index...(str,delim,count) 说明:substring_index(被截取字段,关键字,关键字出现的次数) 例: select substring_index("www.qingtai.org",...",2) as abstract from my_content_t 结果:www.qingtai  (注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束) 结果:qingtai.org

3.1K30
  • MySQL和Oracle字符串截取函数用法总结(比较)

    点击上方'伦少的博客'关注与您一起成长 前言 本文总结MySQL和Oracle的字符串截取函数的用法 工作中MySQL和Oracle都用,有时会碰到两种数据库SQL用法的不同,就会上网查一下,但是时间久了...',-12); 1.3.2 位置和长度 position的用法和上面讲的是一样的,下面仅总结length length>0时返回length个字符数,当length>string的可截取的长度时,只返回可截取的长度...(当length>string的可截取的长度时) SELECT LENGTH(SUBSTRING('Hello World' FROM 6 FOR 20)); 6 2、Oracle 函数:SUBSTR...,下面仅总结length length>0时返回length个字符数,当length>string的可截取的长度时,只返回可截取的长度,这点和MySQL相同 SELECT SUBSTR('Hello World...和Oracle的不同 1、 MySQL函数为SUBSTRING 或 SUBSTR,Oracle只有SUBSTR 2、 position=0时MySQL返回空,而Oracle和position=1时一样

    1.9K40

    【MySQL基础】Mysql截取字符串split函数的实现以及使用范例

    日前,统计数据的时候发现需要字符串分隔,MySql中并没有类似Java的split函数,但是我们可以利用length()函数、replace() 2个函数创建一个自定义的split函数,sql很简单,该函数定义也是...######这两行告诉MySql该函数不会修改数据(尤其对数据库权限只有自读权限的账户是非常有用的) READS SQL DATA DETERMINISTIC ###### BEGIN ###...return (length(inputStr) - length(replace(inputStr,seperatorStr,''))); END split函数测试脚本,返回#的个数: SELECT...splitTermTotal('1#2#3','#') 2 length(str)函数测试,该函数返回str的长度: SELECT LENGTH('1#2#3') 5 replace(strContent..., oldStr,newStr)函数测试,用于将strContent串中的oldStr全部替换为newStr: select replace('1#2#3','#','') 123

    5K20

    Mysql 时间类型精度截取的bug

    mysql-connector-java版本升级出现的一次问题。涉及到了时间精度的截取和四舍五入。 首先了解一点,timestamp,datetime如果不指定精度,默认的精度是秒。...当mysql-connector-java版本的客户端会将Datetime,Timestamp秒以下的精度丢弃。...精度会在客户端被截取到秒,插入db里是'2018-04-02 23:59:59' 如果升级版本,在db的客户端用'2018-04-02 23:59:59.999'插入日期,精度在客户端不会被截断,db的...可以看出db的server端果然会进行四舍五入。 再看一下mysql驱动里是怎么写的,是否真的是截断精度了。...Mysql对于时间精度的处理在com.mysql.jdbc.PreparedStatement#setTimestampInternal这个方法中 翻一下5.1.21的源码看一下: private void

    3.9K20

    mysql中count()函数的用法

    数量查询时,有如下几种方式: 1.下面三种方式,在多数情况下效率是基本相同的,但问题在于,很多情况下,我们数据库可能有脏数据,比如重复数据,或者某条数据重要字段是null的,那下面的这几种,会把这种脏数据也统计上...如果某条记录user_name是空的呢?那下面三种写法,出现的结果就完全不同了: 这是查询这张表的总行数,重复的和null的都算进去。...select count(*) from `user` 这是查询这张表中user_name不为空的行数。...select count(user_name) from `user` 这是查询这张表中,user_name有多少不重复的行,null的也会被统计为一行。...select count(distinct(user_name)) from `user` 以上数据,是在mysql数据库,100万条数据,200万条数据,和300万条数据下做出验证的。

    4.6K21

    mysql 中json函数的使用

    mysql中json函数: 方法 函数 描述 补充 创建json json_array 创建json数组 json_object 创建json对象 json_quote 将json转成json字符串类型...,MySQL 5.7.9开始支持 json_keys 提取json中的键值为json数组 json_search 按给定字符串关键字搜索json,返回匹配的路径 修改json json_append...废弃 MySQL 5.7.9开始改名为json_array_append json_array_append 末尾添加数组元素,如果原有值是数值或json对 象,则转成数组后,再添加元素 json_array_insert...替换值(只替换已经存在的旧值) json_set 设置值(替换旧值,并插入不存在的新值) json_unquote 去除json字符串的引号,将值转成string类型 返回json属性 json_depth...返回json文档的最大深度 json_length 返回json文档的长度 json_type 返回json值得类型 json_valid 判断是否为合法json文档

    4.7K10

    mysql中条件函数

    ——周国平《风中的纸屑》 在我们日常开发中,有时可能会在SQL中写一些条件,例如这里一个例子 这里有这样一张表,数据如下: 如果我们需要把未认证(状态为NOT_AUTH)的用户放到前面排序显示,在不影响分页的情况下...我们可以这么写 SELECT *,IF(status='NOT_AUTH','NOT_AUTH',null) AS sort FROM `user` ORDER BY sort DESC 这里使用到了MYSQL...的IF函数 IF([条件],[为true时值],[为false时值]) 例如我们需要整体排序,认证中的在最前,然后是未认证的,最后是已认证的 我们则可以使用MYSQL中的CASE、WHEN、THEN、ELSE...[条件1满足时值] WHEN [条件2] THEN [条件2满足时值] WHEN [条件3] THEN [条件3满足时值] ELSE [条件都不满足时值] END Tips:在除了查询语句中,其余操作的SQL...都可以用该函数哦 这就是今天的博客内容啦!

    4.9K10

    MySQL 中对字符串进行操作:字符串截取

    ) 年 结果:2018 2、right(name,2)截取右边的2个字符 SELECT RIGHT(201809,2) 月份 结果:09 3、SUBSTRING(name,5,3) 截取name这个字段...从第五个字符开始 只截取之后的3个字符 SELECT SUBSTRING('成都融资事业部',5,3) 结果:事业部 4、SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符...SUBSTRING('成都融资事业部',-4) 结果:资事业部 6、SUBSTRING(name, -4,2) 截取name这个字段的第 4 个字符位置(倒数)开始取,只截取之后的2个字符 SELECT...SUBSTRING('成都融资事业部',-4,2) 结果:资事 注意:我们注意到在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值。....’, -2) 截取第二个 ‘.’ (倒数)之后的所有字符 SELECT substring_index('www.baidu.com', '.

    3K20
    领券