SQL中获取特殊字符后的字符

在这里插入图片描述

从上面信息中只获取到性别

  • 先把所有信息反转过来
select reverse(profile) from user_submit;

在这里插入图片描述

  • 获取性别的位置
select locate(',', reverse(profile)) -1 from user_submit;

在这里插入图片描述

  • 从左边截取反转之后的字符,到性别的最后位置
select left(REVERSE(profile),LOCATE(',',REVERSE(profile)) -1 )
from user_submit;

在这里插入图片描述

  • 把最终结果再反转回来
select reverse(left(REVERSE(profile),LOCATE(',',REVERSE(profile)) -1 )) gender from user_submit;

在这里插入图片描述

总结:
用到的函数
reverse:reverse(s)将字符串进行反转,即顺序取反
locate: locate(str, string)
判断字符串(string)中是否包含另一个字符串(str)
left:LEFT()函数是一个字符串函数,它返回具有指定长度的字符串的左边部分。
LEFT(Str,length); 接收两个参数:
 str:一个字符串; length:想要截取的长度,是一个正整数;

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果要获取 SQL 前两个特殊字符之间的字符,可以使用 SUBSTRING 函数和两个内置函数 LOCATE 和 SUBSTRING_INDEX,具体步骤如下: 1. 使用 LOCATE 函数找到第一个特殊字符字符的位置,记为 `pos1`。 ```sql SELECT LOCATE('特殊字符', 字段名) AS pos1 FROM 表名; ``` 2. 使用 LOCATE 函数找到第二个特殊字符字符的位置,记为 `pos2`。 ```sql SELECT LOCATE('特殊字符', 字段名, pos1 + 1) AS pos2 FROM 表名; ``` 3. 使用 SUBSTRING 函数和 SUBSTRING_INDEX 函数截取两个特殊字符之间的字符串,记为 `str1`。 ```sql SELECT SUBSTRING(字段名, pos1 + LENGTH('特殊字符'), SUBSTRING_INDEX(字段名, '特殊字符', -1) - pos1 - LENGTH('特殊字符')) AS str1 FROM 表名; ``` 4. 使用 SUBSTRING 函数截取 `str1` 的前面部分,即为最终结果。 ```sql SELECT SUBSTRING(str1, 1, LOCATE('特殊字符', str1) - 1) AS result FROM (SELECT SUBSTRING(字段名, pos1 + LENGTH('特殊字符'), SUBSTRING_INDEX(字段名, '特殊字符', -1) - pos1 - LENGTH('特殊字符')) AS str1 FROM 表名) AS t; ``` 将以上四个步骤合并,可以得到一条完整的 SQL 语句。其,`字段名` 为需要截取的字段名,`'特殊字符'` 为特殊字符,需要将这些值替换成实际的字符串和字段名。 需要注意的是,如果字符没有两个特殊字符,则该语句将返回空字符串。另外,如果需要获取其他位置的特殊字符之间的字符,可以根据类似的方法进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值