需求表数据如下:
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子查询代码 如何写一个能匹配字符串的mysql语句 – 数据库 – 前端 连不上虚拟机mysql数据库