MySQL 查找字符串位置函数
1、INSTR(str,substr)
返回字符串str中第一次出现子字符串substr的位置,没有则返回0。
官网:https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_instr
select instr('zcxvsd1sa','b'); -- 0
select instr('zcxvsd1sa','s'); -- 5
select instr('zcxvsd1sa',1); -- 7
2、LOCATE(substr,str), LOCATE(substr,str,pos)
LOCATE(substr,str):返回字符串str中第一次出现子字符串substr的位置,没有则返回0。
LOCATE(substr,str,pos):从pos位置开始返回字符串str中第一次出现子字符串substr的位置,没有则返回0。
官网:https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_locate
select locate('s','zcxvsd1sa',-1); -- 0
select locate('s','zcxvsd1sa',-3); -- 0
select locate('s','zcxvsd1sa',0); -- 0
select locate('s','zcxvsd1sa',1); -- 5
select locate('s','zcxvsd1sa',5); -- 5
select locate('s','zcxvsd1sa',6); -- 8
select locate('s','zcxvsd1sa'); -- 5
select locate(1,'zcxvsd1sa'); -- 7
locate()函数不支持起始位负数的查询,即无法从尾部向头部查询。
但可以配合REVERSE(str)反转函数实现从从尾部向头部查询。
3、POSITION(substr IN str)
返回字符串str中第一次出现子字符串substr的位置,没有则返回0。
用法同LOCATE(substr,str)。
替换和截取指定位置字符串
1.情景展示
返回服务器的身份证号需要进行加密:只保留前4位和后3位,中间使用*代替,如何实现?
2.场景分析
需要用到的函数有:IFNULL(),IF(),LENGTH(),REPLACE(),SUBSTR(),这里重点介绍一下REPLACE()和SUBSTR()。
REPLACE(str,from_str,to_str)
介绍:将字符串中部分字符串替换指定的字符串,并返回替换后的整个字符串;
SUBSTR(str FROM pos FOR len)
介绍:从字符串中指定位置开始截取,并截取指定长度。
这里需要注意的是:
不同于Java,pos的最小值是1,而不是0,并且将会从pos的位置进行截取(包含pos对应的值)。
另外,pos的值可以是负数,即:从后往前查,起始值为-1。
3.解决方案
SELECT |
IFNULL( |
IF |
( |
t.PAYERPARTYTYPE = 1, |
IF |
( |
LENGTH( T.PAYERPARTYCODE ) = 18, |
REPLACE ( T.PAYERPARTYCODE, SUBSTR( T.PAYERPARTYCODE FROM 5 FOR 11 ), '***********' ), |
REPLACE ( T.PAYERPARTYCODE, SUBSTR( T.PAYERPARTYCODE FROM 5 FOR 8 ), '********' )), |
T.PAYERPARTYCODE -- 当PAYERPARTYTYPE不等于1时,不对PAYERPARTYCODE做处理 |
), |
'' -- PAYERPARTYCODE为null时,将显示空 |
) PAYERPARTYCODE, |
t.PAYERPARTYTYPE |
FROM |
`cz_fet_main_mz` t |
WHERE |
t.PAYERPARTYCODE IS NOT NULL |
LIMIT 10; |
4.mysql截取字符串
MySQL字符串截取函数:left(), right(), substring(), substring_index(), mid(), substr()。其中,mid(), substr() 等价于 substring() 函数。
left(str, length)
从字符串左侧开始截取指定长度。
right(str, length)
从字符串右侧开始截取指定长度。
substring(str, pos)与SUBSTRING(str FROM pos)
二者用法一致:从字符串指定位置开始截取,直到结束
substring(str,pos,len)与SUBSTRING(str FROM pos FOR len)
二者用法一致:从字符串指定位置开始截取,指定长度的字符串
说明:
当pos为正数时,表示:从字符串左侧开始计数并截取,起始值为1;
当pos为负数时,表示:从字符串右侧开始计数并截取,起始值为-1;
示例:
select SUBSTRing('Marydon2021',1,3); |
select SUBSTRing('Marydon2021',0,3); |
select SUBSTRing('Marydon2021',-1,3); |
1、在手机端微信中会拦截投屏功能,需要首先点击视频页面右上角“...”图标,选择“在浏览器中打开”,在列表中选取具备投屏功能的浏览器,推荐使用QQ浏览器
2、在新打开的浏览器视频页面里,点击播放按钮,可在视频框右上角看到一个“TV”投屏小图标,只要电视和手机在同一WiFi环境下,点击按钮即刻享受大屏观感!
本站资源声明:
1、如需免费下载云盘资源,请先点击页面右上角的“登录”按钮,注册并登录您的账号后即可查看到网盘资源下载地址;
2、本站所有资源信息均由网络爬虫自动抓取,以非人工方式自动筛选长效资源并更新发布,资源内容只作交流和学习使用,本站不储存、复制、传播任何文件,其资源的有效性和安全性需要您自行判断;
3、本站高度重视知识产权保护,如有侵犯您的合法权益或违法违规,请立即向网盘官方举报反馈,并提供相关有效书面证明与侵权页面链接联系我们处理;
4、作为非盈利性质网站,仅提供网络资源的免费搜索和检测服务,无需额外支付其他任何费用,学习和交流的同时请小心防范网络诈骗。