浅谈如何在MySQL中进行模糊搜索的一些问题
来源:互联网 发布:呼死你软件多少钱 编辑:程序博客网 时间:2024/06/08 07:41
在搜索数据库中的数据时,SQL通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符:通配符描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者 [!charlist]。
mysql> select * from Personwhere City not like '%lon%';
+----+----------+-----------+----------------+----------+------+
| id | LastName | FirstName |Address |City | Year |
+----+----------+-----------+----------------+----------+------+
| 3 |Bush | George |Fifth Avenue | NEW York | 1975|
| 7 | Carter |Fred | Changan Street | Beijing | 1980 |
+----+----------+-----------+----------------+----------+------+
但是当你使用[charlist]来模糊搜索的时候,你会发现你很有可能查不到你想要的结果:
其实,当你想要用[charset]这种模式来搜索的时候应该把like关键字换成regexp关键字,因为由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOTREGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。
mysql> select * from Person where City REGEXP '[L]';
+----+----------+-----------+--------------+--------+------+
| id | LastName | FirstName |Address | City | Year |
+----+----------+-----------+--------------+--------+------+
| 1 |Adams |John |abc | London | 1970 |
| 2 |sam |John | OXfordStreet | London | 1970 |
| 4 |Fred |John | OXfordStreet | London | 1970 |
| 6 |Adams |John | OXfordStreet | London | 1970 |
+----+----------+-----------+--------------+--------+------+
4 rows in set (0.03 sec)
+----+----------+-----------+----------------+----------+------+
| id | LastName | FirstName |Address
+----+----------+-----------+----------------+----------+------+
|
|
+----+----------+-----------+----------------+----------+------+
但是当你使用[charlist]来模糊搜索的时候,你会发现你很有可能查不到你想要的结果:
其实,当你想要用[charset]这种模式来搜索的时候应该把like关键字换成regexp关键字,因为由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOTREGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。
mysql> select * from Person where City REGEXP '[L]';
+----+----------+-----------+--------------+--------+------+
| id | LastName | FirstName |Address
+----+----------+-----------+--------------+--------+------+
|
|
|
|
+----+----------+-----------+--------------+--------+------+
4 rows in set (0.03 sec)
0 0
- 浅谈如何在MySQL中进行模糊搜索的一些问题
- 在GAE中模拟like查询进行模糊搜索
- 如何在MySQL中获得更好的全文搜索结果
- 如何在MySQL中获得更好的全文搜索结果
- 浅谈如何在MFC中对CDC进行二次封装
- 将json数据显示在table上,并对该数据进行简单的模糊搜索
- 如何在linux中进行全局按文件类型搜索
- mysql 的搜索处理 浅谈
- MySQL模糊搜索优化
- C#中ComboBox的模糊搜索
- oc 中关于模糊搜索的解决
- 在用SWT进行socket编程中遇到的一些问题的总结
- 关于mysql中如何显示中文及在myeclipse上关联mysql等的一些小结
- 浅谈在项目中遇到问题我们应该如何解决
- 如何先搜索文件然后在文件中搜索具体内容进行输出?
- 使用PreparedStatement进行模糊查询的%问题
- JQUERY在模板页中进行验证一些问题
- 关于在 Spring 中对 DAO 进行单元测试的一些问题
- java编程思想第四版-嵌套类
- stream 流是什么?
- get请求和post请求提交的区别?
- 用wampserver中的phpMyAdmin时会提示 Access denied(访问被拒绝)
- Python装饰器
- 浅谈如何在MySQL中进行模糊搜索的一些问题
- ThreadLocal 简单介绍
- Fragment对menu菜单的操作
- (7)Java设计模式-装饰模式(Decorator)
- java学习笔记(十)
- Android温故之-BroadcastReceiver
- leetcode——22——Generate Parentheses
- ListView的简单运用
- iOS9网络适配 info.plist配置