`

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, 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中的`SUBSTRING_INDEX()`函数是进行字符串分割的常用工具。它返回一个子串,该子串包含了从原始字符串的起始部分到指定分隔符出现的次数。函数的基本语法如下: ```sql SUBSTRING_INDEX(str, delim, count) ``...

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

    在MySQL中,处理字符串是常见的任务,涉及到诸如截取、拆分等操作。本文将深入讲解MySQL中的两个关键函数:`SUBSTRING` 和 `SUBSTRING_INDEX`,并提供相关示例来帮助理解它们的用法。 ### 1. `SUBSTRING` 函数 `...

    java中如何截取字符串.txt

    根据提供的文件信息,本文将详细解释Java中截取字符串的各种方法及其使用场景,并...以上是对Java中截取字符串方法以及部分MySQL字符串截取函数的详细介绍。通过这些方法,开发者可以灵活地处理各种字符串相关的任务。

    MySQL 字符串截取相关函数小结

    总的来说,熟练掌握这些MySQL字符串截取函数对于提升数据库操作效率和编写高效SQL语句至关重要。了解它们的用法和特性,可以更好地应对各种字符串处理场景,简化编程工作,并提高数据处理的灵活性。

    深入SQL截取字符串(substring与patindex)的详解

    除了`substring`和`patindex`,SQL还提供了其他字符串处理函数,如MySQL中的`SUBSTRING`和`SUBSTR`,以及`substring_index`,它们有着类似的用途,但语法和使用方式可能有所不同。例如,在MySQL中,`SUBSTRING`函数...

    mysql截取的字符串函数substring_index的用法

    MySQL中的`SUBSTRING_INDEX()`函数是一个非常实用的字符串处理函数,它主要用于从字符串中提取子串,基于指定的分隔符出现的次数。这个函数在处理分隔符分隔的数据时特别有用,例如处理IP地址、逗号分隔的列表等。 ...

    MySQL 截取字符串函数的sql语句

    总结来说,MySQL提供了多种截取字符串的工具,包括`LEFT()`、`RIGHT()`、`SUBSTRING()`、`SUBSTRING_INDEX()`以及结合`CHAR_LENGTH()`的用法,这些函数在处理字符串时提供了极大的灵活性。了解并熟练掌握这些函数,...

    mysql截取函数常用方法使用说明

    MySQL中的截取函数是数据库操作中非常实用的功能,它们允许我们根据需求提取字符串的一部分。这里我们将详细介绍四个常见的MySQL截取函数:`LEFT()`、`RIGHT()`、`SUBSTRING()` 和 `SUBSTRING_INDEX()`。 1. **`...

    mysql基于正则实现模糊替换字符串的方法分析

    总结起来,MySQL中实现基于正则的模糊替换字符串,关键在于理解`REPLACE`、`SUBSTRING`、`LOCATE`和`CONCAT`等函数的用法,以及如何正确地构造正则表达式。同时,掌握正则表达式的规则和实践中的注意事项,能够帮助...

    MySQL常用函数.pdf

    SUBSTRING(expression,start[,length])函数用于截取字符串。例如SUBSTRING('CDA数据分析',1,3)会返回'CDA'。TRIM(str)函数用于返回删除了字符串两端空白后的结果。 日期时间函数用于处理日期和时间数据。它们在...

    在SQL查询中如何截取字符串后转成数值型?

    将字符串截取后转换为数值型(如整数或浮点数)是数据库管理中的一个实用技能,它能帮助我们进行更精确的数据分析和计算。本文将详细解析如何在SQL查询中实现这一过程,并提供具体的操作步骤和示例。 ### 截取字符...

    mysql 截取指定的两个字符串之间的内容

    这个SQL语句使用了`SUBSTRING()`、`LOCATE()`和`CHAR_LENGTH()`等函数,直接在查询中完成了字符串截取。 MySQL提供了多种字符串处理函数,包括: 1. `CHAR_LENGTH(str)`:返回字符串`str`的长度,对于多字节字符,...

    SQL 截取字符串应用代码

    总的来说,SQL的字符串截取功能在数据处理中扮演着重要角色,但需要根据具体的数据类型和字符集来谨慎使用,特别是在处理非英文字符时。熟练掌握这些函数的用法,能够帮助我们在数据库操作中更加灵活和高效。

    用SQL语句截取字符串

    ### 使用SQL语句截取字符串 在数据库管理与查询中,经常需要对存储的数据进行处理,其中一项常见的操作就是对字符串进行截取。这在数据分析、数据清洗等场景下尤为重要。SQL提供了内置函数来帮助我们完成这一任务,...

Global site tag (gtag.js) - Google Analytics