MySQL数据库——用通配符和正则表达式过滤数据(一)
来源:互联网 发布:gg了什么意思网络用语 编辑:程序博客网 时间:2024/05/19 12:26
前面我们介绍过关于如何过滤数据,但是那些都是对已经确定的值进行过滤的。在实际生活中,我们很可能需要类似这样的搜索,列出文本中包含关键字“Freeman”的语句。
显然,我们用之前的简单操作肯定是不行地,必须使用通配符!
通配符:用来匹配值一部分的特殊字符
搜索模式: 由字面值、通配符或两者组合成的搜索条件。
通配符本身实际是SQL的WHERE子句中有特殊汉子的字符,在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示MySQL,后跟的搜索模式(我喜欢叫搜索样式),利用通配符而不是直接相等匹配来比较。
谓词:操作符何时不是操作符?答案是在它做谓词时。从技术上说,LIKE是谓词而不是操作符。虽然最终结果相同,但是应该对这个术语了解,SQL文档会提到。
part 1 百分号通配符使用
SELECT users.user_name, users.user_age FROM users WHERE users.user_name LIKE '%一东'
这个例子使用了搜索模式 ‘%一东’ 检索任何后面跟着一东的词。 注意:虽然SQL语句不区分大小写,但是搜索模式是区分的 %huang 和 222HUANG 将不会匹配!
通配符可在搜索模式中任意位置使用,并且可以使用多个通配符。
SELECT users.user_name, users.user_age FROM users WHERE users.user_name LIKE '%一%'
搜索模式 “%一%” 将匹配任何包含一 的文本。
要注意到,除了一个或多个字符外,%还能匹配0个字符。%代表搜索模式中给定位置的0个、1个或多个字符 。
另外!还有要注意尾空格:尾空格可能会干扰通配符的匹配。例如,在保存词anvil时,如果它后面还有一个或多个空格,则子句WHERE prod_name LIKE ‘%anvil’ 将不会匹配,因为在后面有多余的字符。
解决这个问题的好办法是,将搜索模式写成这样’%anvil%’,还有更好的方法,是使用函数,我们以后会说到。
part 2 下划线(_)通配符
另一个有用的通配符是下划线(_)。下划线的用途和 % 一样 , 但是下划线只匹配单个字符而不是多个字符 。 如下:
SELECT users.user_name, users.user_age FROM users WHERE users.user_name LIKE '_一_'
第一个下划线 会 匹配 黄 第二个下划线 会匹配 东 。
和%能匹配0或多个字符不一样,下划线智能匹配一个,不能多也不能少。
part 3 通配符使用技巧
通配符搜索的处理一般要比前面讨论的其他搜索所话时间更长 。所以:
1.不要过度使用通配符。如果通过其他形式能达到目的,应该优先其他形式。
2.确实需要使用通配符的时候,除非真的有必要,否则不要吧通配符放到搜索模式的开始处。因为把通配符放到搜索模式的开始处,搜索起来是最慢的!
3.仔细注意通配符的位置,否则可能有意想不到的问题。
- MySQL数据库——用通配符和正则表达式过滤数据(一)
- MySQL数据库——用通配符和正则表达式过滤数据(二)
- MySQL检索数据(过滤+通配符+正则表达式)
- MySql通配符过滤,正则表达式过滤.
- MySQL数据过滤和通配符过滤.md
- mysql过滤数据(三)用通配符进行过滤
- MySQL数据库——过滤数据(一)
- MySQL通配符过滤数据
- MySQL必知必会笔记(二)SELECT语句 检索 排序 过滤 通配符搜索 正则表达式搜索
- MySQL必知必会笔记(二)SELECT语句 检索 排序 过滤 通配符搜索 正则表达式搜索
- MySQL必知必会笔记(二)SELECT语句 检索 排序 过滤 通配符搜索 正则表达式搜索
- MYSQL使用正则表达式过滤数据
- 通配符和正则表达式
- 正则表达式 和 通配符
- 通配符和正则表达式
- 正则表达式和通配符
- 通配符和正则表达式
- 通配符和正则表达式
- 3461. 在哈尔滨的寒风中(找规律)
- 多线程之wait()、notify()和notifyAll()
- 培训第五天,方法的概述,定义,使用,重载
- Java基础之for循环案例(二)
- 输入月份所拥有的天数
- MySQL数据库——用通配符和正则表达式过滤数据(一)
- 问题 W: 计算提成与总费用
- 问题 X: 计算各位数字之和
- HTML5--焦点轮播图案例
- FastDFS与Springboot集成
- JavaScript基础(1)——初步认识JavaScript
- Qt
- 问题 Y: 大小写转换
- 安卓开发(4):ListView的使用,arrayAdapter,simpleAdapter