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)
替换成.然后在匹配
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有