MySql如何去除字符串前缀,两边,后缀
作者:斗战圣佛91
这篇文章主要介绍了MySql如何去除字符串前缀,两边,后缀,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
MySql去除字符串前缀,两边,后缀
效果
语句
select supplierNum, trim(LEADING '0' from supplierNum) from t_claim_saleclaim
Trim 函数
TRIM([{BOTH | LEADING | TRAILING} [str_to_remove] FROM] string)
这里,参数
BOTH
:表示要从字符串中删除的左右前缀。LEADING
:表示只删除前导前缀。TRAILING
:表示仅删除尾随前缀。Str_to_remove
:表示要从字符串中删除的字符串。
字符串参数表示必须从中删除前缀的字符串。
MySql字符串处理常用方法
1.在mybatis的Mapper.xml的sql语句中
不能直接用大于号、小于号要用转义字符
如果用小于号会报错误如下:
org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup。
转移符 | 原字符 | 中文意思 |
---|---|---|
< | < | 小于符号 |
> | > | 大于符号 |
& | & | 和 |
' | ‘ | 单引号 |
" | “ | 双引号 |
2.trim()的使用
trim函数可以过滤指定的字符串:
- 完整格式:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
- 简化格式:TRIM([remstr FROM] str)
返回字符串 str , 其中所有remstr前缀和/或后缀都已被删除。若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH。remstr为可选项,在未指定情况下,可删除空格。
mysql> SELECT TRIM(' bar '); -> 'bar' mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); --删除指定的首字符 x -> 'barxxx' mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); --删除指定的首尾字符 x -> 'bar' mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); --删除指定的尾字符 x -> 'barx'
mysql中的去除左空格函数:
LTRIM(str);
mysql> SELECT LTRIM(' barbar'); -> 'barbar'
mysql中的去除右空格函数:
RTRIM(str):
mysql> SELECT RTRIM('barbar '); -> 'barbar'
3.字符串拆分:SUBSTRING_INDEX(str, delim, count)
参数解说
参数名 | 解释 |
---|---|
str | 需要进行替换的字符串 |
from_str | 需要被替换的字符串 |
to_str | 需要替换的字符串 |
示例:
SUBSTRING_INDEX(s.params,'&',1) --获取第一个&分隔符之前的所有字符
4.替换函数:replace( str, from_str, to_str)
参数名 | 解释 |
---|---|
str | 需要进行替换的字符串 |
from_str | 需要被替换的字符串 |
to_str | 需要替换的字符串 |
示例:
REPLACE('label_name=[茶光村65号901]','label_name=[','') --将label_name=[替换为空格
5.获取字符串长度:LENGTH( str )
参数名 | 解释 |
---|---|
str | 需要计算长度的字符串 |
示例:
where LENGTH(h.hot_words)>0 --判断h.hot_words字段长度大于0的数据
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。