substring_index(input,split,index):input为要截取的字符,split为分隔符,Index为要截取第index个分隔符左(index为正)或右(index为负)的字符串。
举例:
'Provider="RiskManagement" finalScore="65" RGID="100397278"' //获取finalScore的值
1、获取finalScore右边的字符
select substring_index('Provider="RiskManagement" finalScore="65" RGID="100397278"','finalScore="',-1)
2、再获取" RGID="左边的字符
select substring_index(substring_index('Provider="RiskManagement" finalScore="65" RGID="100397278"','finalScore="',-1),'" RGID="',1)
扩展资料
MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。
1、字符串截取:left(str, length)
mysql>select left('sqlstudy.com', 3)
| left('sqlstudy.com', 3) |
| sql |
2、字符串截取:right(str, length)
mysql>select right('sqlstudy.com', 3)
| right('sqlstudy.com', 3) |
| com |
你是用PHP编程吗?用正则表达式模式匹配很容易解决你这个问题,假如你数据库表名为db1.tb1,假设内容“a中国日报 919901223”的字段名是p,内容“$aHOW AR YOU $b……”的字段名是q,那么下面的代码可以取出你要的东西:<?php
mysql_connect(....)
$sql='select p,q from db1.tb1'
$res=mysql_query($sql)
while($row=mysql_fetch_array($res)){
if (preg_match("/a(\w+) 9/",$row[p],$matches)
echo "$matches[1]<br>\n"
if (preg_match("/\$a(.*?)\$b/",$row[q],$matches)
echo "$matches[1]<br>\n"
}
mysql_free_result($res)
mysql_close()
?>
DB version: 5.7.25-log 和 8.0.18
1. RLIKE() 为REGEXP同义词,见下
2. REGEXP() 完整表达式 expr REGEXP pat
>如果字符串expr与模式pat指定的正则表达式匹配,则返回1,否则返回0。
>如果expr或pat为NULL,则返回值为NULL。
>正则表达式规则明细及使用案例见下方。
3. NOT REGEXP() 完整表达式 expr NOT REGEXP pat 或者 expr NOT RLIKE pat 。
与 NOT (expr REGEXP pat) 相同。
1. REGEXP_LIKE() REGEXP 和 RLIKE 是 REGEXP_LIKE() 的同义词。
使用明细见上面5.7版本 '正则表达式规则'
2. REGEXP_INSTR()完整表达式 REGEXP_INSTR(expr, pat[, pos[, occurrence[, return_option[, match_type]]]])
>返回与模式 pat 指定的正则表达式匹配的字符串 expr 的子字符串的起始索引,如果没有匹配则为0。
>如果 expr 或 pat 为NULL,则返回值为NULL。字符索引从1开始。
完整表达式各参数含义:
pos : 从 expr 的 pos 位置开始搜索,默认为1;
occurrence : 返回第 occurrence 个匹配的子字符串,默认为1;
return_option : 返回类型,如果为0,则返回匹配到的子字符串的第一个字符的位置,如果为1,则返回匹配到的子字符串最后一个字符的位置+1,默认为0;
match_type : 匹配类型,包含以下值,可同时使用一个或多个;
如果在match_type中指定了矛盾选项的字符,则以最右边的字符为准。
3. REGEXP_REPLACE()完整表达式 REGEXP_REPLACE(expr, pat, repl[, pos[, occurrence[, match_type]]])
>用替换字符串 repl 替换字符串 expr 中与模式 pat 指定的正则表达式匹配的匹配项,并返回结果字符串。
>如果expr,pat或repl为NULL,则返回值为NULL
pos , occurrence , match_type 参数含义见 REGEXP_INSTR()
4. REGEXP_SUBSTR()完整表达式 REGEXP_SUBSTR(expr, pat[, pos[, occurrence[, match_type]]])
>返回与模式 pat 指定的正则表达式匹配的字符串 expr 的子字符串;如果不匹配,则返回NULL。
>如果expr或pat为NULL,则返回值为NULL。
pos , occurrence , match_type 参数含义见 REGEXP_INSTR()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)