2016 - 2024

感恩一路有你

mysql 正则表达式匹配 如何写一个能匹配字符串的mysql语句?

浏览量:1854 时间:2021-03-17 07:14:41 作者:admin

如何写一个能匹配字符串的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 正则表达式匹配 数据库正则表达式

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。