mysql截取点前面两位的字符串,Mysql字符串截取函数SUBSTRING的用法说明
搜索热词
感觉上MysqL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用。
函数:
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.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 ) )
这里用了子查询,首先查询user表中,id为1的jlid字段的值,返回的是字符串,然后使用SUBSTRING进行截取,得到字符串1
SELECT SUBSTRING( (SELECT user.jlid FROM user WHERE user.id =1),1 ) )
这条语句得到2
1和2都得到了再通过主查询的where来查询,要注意我们需要查询id=1和id=2的记录,所以用到了OR,怎么样,是不是有点麻烦,
您的第一直觉是不是要用2条sql语句,中间再配合PHP的explode函数来查询呢?这样想是正常的,但是这两者之间谁的效率高,站长并没有测试,希望有心的你,可以帮忙哦!
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
mysql截取点前面两位的字符串,Mysql字符串截取函数SUBSTRING的用法说明相关推荐
- mysql 格式化 小数点后两位_MYSQL数据库mysql格式化小数保留小数点后两位(小数点格式化)...
<MYSQL数据库mysql格式化小数保留小数点后两位(小数点格式化)>要点: 本文介绍了MYSQL数据库mysql格式化小数保留小数点后两位(小数点格式化),希望对您有用.如果有疑问,可 ...
- mysql删除字段前两位_删除MySQL中所有字段的前两个字符?
要删除所有字段的前两个字符,您需要使用SUBSTRING()MySQL中的function.语法如下-UPDATE yourTableName SET yourColumnName=SUBSTRING ...
- 实测MySQL 查询结果保留两位小数函数的区别汇总
MySQL查询结果保留两位小数常用的几个函数的区别,使用场景. 1.随机函数format(x,d) 2.格式化小数函数format(x,d) 例如: select format(23456.789,2 ...
- php mysql字符串截取比较读取_MySQL_Mysql字符串截取函数SUBSTRING的用法说明,感觉上MySQL的字符串函数截取 - phpStudy...
Mysql字符串截取函数SUBSTRING的用法说明 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取 ...
- JS截取小数点后两位
1.substr var str = "Hello world!"; document.write(str.substr(3)); 输出: lo world! var str = ...
- mysql截取字符串最后两位_Mysql字符串截取函数SUBSTRING的用法说明
感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str, length) 说明:le ...
- mysql 从第几位开始截取_Mysql字符串截取函数SUBSTRING的用法说明
今天建视图时,用到了MySQL中的字符串截取,很是方便. 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始 ...
- mysql时间相减得到天数保留两位_[转]Mysql日期函数-日期相减返回天数
MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数. select datediff('2008-08-08', '2008-08-01'); ...
- mysql截取字符串后缀_Mysql字符串截取函数SUBSTRING的用法说明
今天建视图时,用到了MySQL中的字符串截取,很是方便 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截 ...
最新文章
- 通过改进算法来优化程序性能的真实案例(Ransac)
- 华为正式宣布鸿蒙,空欢喜一场?华为正式宣布,鸿蒙系统用作他用
- 东风日产数据服务有限公司借力服务网格,实现7层流量精细化管控
- python怎么转到下一行_Python转到下一行并保存/编辑内容
- 【JAVA 第三章 流程控制语句】课后习题 月历打印
- 将某一列转换为字符类型_还在为数据清洗抓狂?这里有一个简单实用的清洗代码集...
- 不宜佩带佛像,宜佩带佛号、咒语
- 父与子一起学python_父与子的编程之旅:与小卡特一起学Python 中文pdf版[22MB]
- 论文阅读(4) 游泳水母对被动能量再捕获的广泛利用(2018)
- plsql导出文件转mysql_PLSQL Developer导入导出数据库
- Word中如何删除某一页的页眉,不影响其他页眉
- Day124.分布式事务:Seata、2PC两段式、代码补偿TCC、本地消息表、MQ事物消息
- html为什么链接无效,如何揪出网页中的无效链接
- 2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)Subpermutation
- 在Typora路上愈走愈远,几乎涵盖所有入门攻略和常见问题以及typora继续探索~
- EDG 到底是个啥?元宇宙呢?
- 联发科技嵌入式_联发科技2018校园招聘
- c++数独游戏2.0
- sklearn中的线性回归
- iOS iPhone6分辨率与适配