Mysql字符串截取函数SUBSTRING的用法说明

来源:脚本之家  责任编辑:小易  

&&&&&&&&&&&&&&&& 补充说明: &&&&&&&&&&&&&&&& instr(字段,'#',1,2) 函数查找【字段】中从第【1】位开始,第【2】个【#】位置。 substr(字段,1,查出的位置-1) 截取你想要的字符串。 &&&&&&&&&&&&&&&&& select substr(字段,1,instr(字段,'#',1,2

感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用。

函数:

1、从左开始截取字符串

SELECT LEFT(str, LENGTH(str) - LOCATE('.', REVERSE(str))) substring也可以点,最后点lastindexof(".")

left(str, length)

js有2个截取字符串的函数,其定义如下: substr(start,length) substring(start,end) substr是从起始点截取某个长度的字符串 而substring是截取2个位置之间的字符串 用了这么久js,今天才算明白如何截取字符串,以前都稀里糊涂的用,没注意到有2个函

说明:left(被截取字段,截取长度)

首先说截取字符串函数: SUBSTRING(commentid,9) 这个很简单,从第9个字符开始截取到最后。SUBSTRING的参数有三个,最后一个是截取的长度,默认是到结尾,负数是倒数第几位。 接着说拆分字符串函数: SUBSTRING_INDEX(commentid, '-', 1) 这个就

例:select left(content,200) as abstract from my_content_t

你先把字段反转后截取,截取完后再反转回来 select REVERSE(substring(REVERSE(字段),1,3)) from 表 REVERSE(字段名称,开始位置,要截取长度)

2、从右开始截取字符串

可以说女主角压倒性的战胜女二号。因为大桥未久作为一个日本演员,跑到中国演网络剧,已经很不容易了,但是却将李月牙演的非常的入骨,全程用中文解说,太敬业了。而郭敬明反串的女二号岳绮罗演绎的也不错,可惜太瘦弱了,没有女一的韵味所以这一局女主赢了。

right(str, length)

传说是朱元璋出的对联,是不是真的姑且不论。单就这联的意境而言,有很多可以与之匹配的句子,沒有太大难度,只能称其为普通对联。其实喜欢玩对联的友们都知道一个道理,那就是必须合乎工整和律的要求,多半出联者,一般都会采用大家公认的模式来出,如七字联上联多采用,平平仄仄平平仄,或仄仄平平平仄仄,这样接联者自然会用仄仄平平仄仄平,或平平仄仄仄平平来对,而且容易上口。古近代诗词与对联的形式基本大同小异,其不同之处就在于,诗有补救拗句的功能。因此古近体诗又提出了一三五不论的观点,着重看二四六,其实就是给诗者更大的回旋空间。一旦上句出了问题,只要不是特别严重的三仄尾,三平尾都是可以及时补救的。举例:上句:平平平

说明:right(被截取字段,截取长度)

昨天傍晚,去天安门广场逛了下,一妇女抱了4箱老冰棍,放地上摞起来,拆开一箱,大喊:老冰棍2块一个~然后立马围了一群人,经过20分钟的拼命收钱发冰棍收钱发冰棍收钱发冰棍…4箱老冰棍立马卖光。我查了下,一箱50支,批发35元,1箱的利润是65元,4箱就是260元。(她不接受微信付款,因为太慢)当然,这不是我要分享的方法~只是想说:在线下,有人的地方就有钱赚;而在网络上,有流量的地方就一定有钱赚,关键是勤思考,当然,多看些网赚方法,自己会有更明确的思考思路,接下来就分享几个。一、淘宝卖虚拟商品虚拟商品很多,举个大家都熟悉的例子:电子书。这个听起来好像没啥钱赚,但是,电子书这种东西零成本呀,而且虚拟产

例:select right(content,200) as abstract from my_content_t

大兄弟,你确定不是在逗我?OK,如果你是认真的,那么我们看下2万块现金,月入2400的情况,可以买什么车暂且抛开养车费不谈,只说买车和分期费用以国产小型SUV宝骏510为例宝骏510低配官方指导价5.48万,基本没什么优惠。落地要六万多块。要做分期肯定有手续费利息等费用,按7万来算。首付2万,姑且按你2万够最低首付标准。那么就有5万的分期款要还。算你3年,36个月,平均每个月还款1388.9元。哥们,你月入2400,还了贷款,基本就是还剩1000块,够生活费吗?这还是不算邮费,养车费等费用的情况下。所以我觉得你是在开玩笑。如果你是认真的,那还是踏踏实实坐公交的好。努力提高自己的收入水平,等到能

3、截取字符串

substring(str, pos)

substring(str, pos, length)

说明:substring(被截取字段,从第几位开始截取)

substring(被截取字段,从第几位开始截取,截取长度)

例:select substring(content,5) as abstract from my_content_t

select substring(content,5,200) as abstract from my_content_t

(注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度)

4、按关键字截取字符串

substring_index(str,delim,count)

说明:substring_index(被截取字段,关键字,关键字出现的次数)

例:select substring_index("blog.jb51.net","。",2) as abstract from my_content_t

结果:blog.jb51

(注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束)

函数简介:

SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)

不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。 使用 FROM的格式为标准 SQL 语法。也可能对pos使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的pos 字符,而不是字符串的开头位置。在以下格式的函数中可以对pos 使用一个负值。

详情请查阅手册。

实例:

表1:user

表2:jl

期望效果:通过user表jlid字段存储的id值,读取jl表中的相应记录,这里想要读取,jl表中id为1、2的记录,首先想到用in,但是很遗憾由于

jlid字段存储的id值有2个,尽管从形式上符合in(1,2)的格式,但是如果你使用select jl.* from jl where jl.id in(select jlid from user where user.id=1)来查询的话,是不行的,他总是返回id为1的记录。

那么怎么办呢?如果我们能够分别得到1,2中的1和2就行了。好在mysql也提供了字符串截取函数SUBSTRING。

sql句法如下:

SELECT jl. *

FROM jl

WHERE jl.id = (

SELECT SUBSTRING( (

SELECT user.jlid

FROM user

WHERE user.id =1

), 1, 1 ) )

OR jl.id = (

SELECT SUBSTRING( (

SELECT user.jlid

FROM user

WHERE user.id =1

), 3, 1 )

)

LIMIT 0 , 30

简单解释一下:

SELECT SUBSTRING( (SELECT user.jlid FROM user WHERE user.id =1), 1, 1 ) )

这里用了子查询,首先查询user表中,id为1的jlid字段的值,返回的是字符串,然后使用SUBSTRING进行截取,得到字符串1

SELECT SUBSTRING( (SELECT user.jlid FROM user WHERE user.id =1), 3, 1 ) )

这条语句得到2

1和2都得到了再通过主查询的where来查询,要注意我们需要查询id=1和id=2的记录,所以用到了OR,怎么样,是不是有点麻烦,

您的第一直觉是不是要用2条sql语句,中间再配合php的explode函数来查询呢?这样想是正常的,但是这两者之间谁的效率高,站长并没有测试,希望有心的你,可以帮忙哦!

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

mysql 截取指定位置后面的所有的字符

mysql 截取指定位置后面的所有的字符可以使用命令:

SELECT SUBSTRING_INDEX( 'G3_555') , '_' , -1) AS str_1 FROM tablename;

其中SUBSTRING_INDEX是截取字符串的函数。

'G3_555' , '_' , -1分别表示从第一个_符号开始截取_右边的字符串。

扩展资料

mysql sql语句中SUBSTRING_INDEX的用法介绍:

SUBSTRING_INDEX(s, delimiter, number)    返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。

如果 number 是正数,返回第 number 个字符左边的字符串。

如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。   

例如:

SELECT SUBSTRING_INDEX('a*b','*',1)

返回:a

SELECT SUBSTRING_INDEX('a*b','*',-1)  

返回:b

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1) 

返回:c

mysql的查询中怎么截取字符串

要视情况而定,不同的要求有不同的截取办法。

可分为从左往右截取,从右往左截取,从第几位截取,关键字截取。步骤如下。

具体步骤如下:

  1. 从左开始截取字符串

    left(str, length)

    说明:left(被截取字段,截取长度)

    例:select left(content,200) as abstract from my_content_t

  2. 从右开始截取字符串

    right(str, length)

    说明:right(被截取字段,截取长度)

    例:select right(content,200) as abstract from my_content_t

  3. 截取字符串

    substring(str, pos)

    substring(str, pos, length)

    说明:substring(被截取字段,从第几位开始截取)

    substring(被截取字段,从第几位开始截取,截取长度)

    例:select substring(content,5) as abstract from my_content_t

    select substring(content,5,200) as abstract from my_content_t

    (注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度)

  4. 按关键字截取字符串

    substring_index(str,delim,count)

    说明:substring_index(被截取字段,关键字,关键字出现的次数)

    例:select substring_index(”blog.chinabyte.com”,”。”,2) as abstract from my_content_t

    结果:blog.chinabyte

    (注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束)

    结果:chinabyte.com

    截取的字符串为15,151,152,16’,可以看作是ip吧(虽然这里指的不是iP),

    然后要截取每个逗号之前那部分。

mysql截取删除字符串

在使用mysql时,常会进行字符串截取,字符替换,取子串等。具体介绍如下:

1、从左开始截取字符串

left(str, length) 说明:left(被截取字段,截取长度)

例:select left('charfunction', 5) as result from dual;

输出: charf

2、从右开始截取字符串

right(str, length) 说明:right(被截取字段,截取长度)

例:select right('charfunction',5) as result from dual;

输出:ction

3、截取字符串,这里分两种情形,分别是从头截取和中间开始截取

substring(str, pos) 说明:substring(被截取字段,从第几位开始截取)

substring(str, pos, length) substring(被截取字段,从第几位开始截取,截取长度)

例:select substring('charfunction', 5) as result from dual; 输出:unction

select substring('charfunction',5,5) as result from dual; 输出:uncti

(注:如果位数是负数 如-5 则是从后倒数位数,到字符串结束或截取的长度)

4、替换相关字符

replace(str, old, new)将 str中的 old串替换成new字符串

例:select replace ('charfunction','n','WW') as result from dual;

输出: charfuWWctioWW

具体使用方法请结合数据表练习领会。

  • 本文相关:
  • mysql replace函数替换字符串语句的用法
  • mysql获取字符串长度函数(char_length)
  • mysql计算时间差函数
  • 详解mysql中concat函数的用法(连接字符串)
  • mysql中日期和时间戳互相转换的函数和方法
  • mysql日期函数与日期转换格式化函数大全
  • mysql常用函数汇总(分享)
  • mysql字符串处理函数详细介绍、总结
  • mysql存储过程与函数详解
  • mysql的存储过程和函数简单写法
  • mysql流程函数常见用法实例分析
  • 简介操作mysql日志的一些方法
  • mysql中slave监控的延迟情况分析
  • mysql计划任务(事件调度器) event scheduler介绍
  • mysql数据库远程访问设置方法
  • 解决mysql收缩事务日志和日志文件过大无法收缩问题
  • mysql使用group by分组实现取前n条记录的方法
  • 详解mysql中的分组查询与连接查询语句
  • 快速理解mysql中主键与外键的实例教程
  • mysql索引长度限制原理解析
  • 浅析mysql交互式连接&非交互式连接
  • mysql 截取指定位置后面的所有的字符
  • mysql的查询中怎么截取字符串
  • mysql截取删除字符串
  • mysql字符串截取
  • mysql 正则表达式 如何截取字符串中指定格式的字符
  • oracle 函数里有像mysql数据库中的SUBSTRING_INDEX...
  • mysql字符串如何得到指定字符最后的位置,学习SUBS...
  • substring和substr有什么区别
  • mysql 怎样拆分字符串
  • sql语句如何实现从后往前 截取字段啊
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved