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

mysql的查询中怎么截取字符串,第1张

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

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

具体步骤如下:

从左开始截取字符串

left(str, length)

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

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

从右开始截取字符串

right(str, length)

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

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

截取字符串

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 则是从后倒数位数,到字符串结束或截取的长度)

按关键字截取字符串

substring_index(str,delim,count)

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

例:select substring_index(”blogchinabytecom”,”。”,2) as abstract from my_content_t

结果:blogchinabyte

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

结果:chinabytecom

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

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

--这个查询需要注意的是qwer后的需要查询的字符串必须是一个空格,不能有的是一个空格有的是两个。也就是格式要固定。

--定义参数

create table #a (string varchar(max))

declare @sql varchar(max)

declare @a varchar(max)

select @a ='asdf qwer zxcv 1234 qwer yuchor 3452 qwer abcd 7893'--这个是要查询的字符串

---------------------------查询qwer后面的字符串----------------------------------------

while charindex('qwer',@a)<>0

begin

select @a=SUBSTRING ( @a,charindex('qwer',@a)+5,LEN(@a)-charindex('qwer',@a)-4)

insert into #a values (@a)

end

select SUBSTRING (LTRIM ( string) ,1,charindex(' ',LTRIM ( string))) as result from #a

--查询结果

result

zxcv

yuchor

abcd

SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

select

substr('A123456',instr('A123456','A')+1,len('A123456')-instr('A123456','A'))

from

dual

instr

返回1,

所以给它+1

从第2位开始截取到总长度-‘A’这个字符串的位置,

就是

6

所以最终会是

select

substr('A123456',2,6)

from

dual

这么写能明白吗

select substring('123,456',charindex(',','123,456') ,len('123456')-3) 结果: ',456'

意思:截取’123,456‘ 从第4为开始截取 4位

substring(字段,第几个字符开始截取,截取长度)

charindex(',','123,456') ‘,’的位置 结果为:4

len('123456') 字段长度 结果为:7

以上就是关于mysql的查询中怎么截取字符串全部的内容,包括:mysql的查询中怎么截取字符串、sql 如何截取一个字段里某一字符串中间的字符、SQL字符串截取(oracle数据库)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9831006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存