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)
替换成.然后在匹配