mysql的字符串匹配

需求表数据如下:

mysql> select * from test;
+----+-------+
| id | name  |
+----+-------+
|  1 | abc** |
+----+-------+
1 row in set (0.00 sec)

 我想匹配 abcde,也就是一个*代表一个字符

分析:
在正则中*代表0个或者多个,因此此处的存储有问题,应该存储.或者_那么查询sql可以通过like和REGEXP 来实现


结论:
1.采用like

mysql>  select * from test where 'abcde' like replace(name,'*','_');
+----+-------+
| id | name  |
+----+-------+
|  1 | abc** |
+----+-------+
1 row in set (0.01 sec)

 先替换成_然后在like 匹配

2.采用REGEXP

mysql>  select * from test where 'abcde' regexp replace(name,'*','.');
+----+-------+
| id | name  |
+----+-------+
|  1 | abc** |
+----+-------+
1 row in set (0.02 sec)

 替换成.然后在匹配

猜你喜欢

转载自snv.iteye.com/blog/1844132