mysql 正则表达式匹配 如何写一个能匹配字符串的mysql语句?
如何写一个能匹配字符串的mysql语句?
mysql的字符串匹配
需求表数据如下:
Java代码
mysql> select * from test
---- -------
| id | name |
---- -------
| 1 | abc** |
---- -------
1 row in set (0.00 sec)
我想匹配 abcde,也就是一个*代表一个字符
分析:
在正则中*代表0个或者多个,因此此处的存储有问题,应该存储.或者_那么查询sql可以通过like和REGEXP 来实现
结论:
1.采用like
Java代码
mysql> select * from test where "abcde" like replace(name,"*","_")
---- -------
| id | name |
---- -------
| 1 | abc** |
---- -------
1 row in set (0.01 sec)
先替换成_然后在like 匹配
2.采用REGEXP
Java代码
mysql> select * from test where "abcde" regexp replace(name,"*",".")
---- -------
| id | name |
---- -------
| 1 | abc** |
---- -------
1 row in set (0.02 sec)
替换成.然后在匹配
mysql如何用正则表达式,截取字符串?
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 正则表达式匹配 sql 正则表达式匹配 数据库正则表达式
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。