加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 数据库 > MySql > 正文

MySQL数据库――用通配符和正则表达式过滤数据(一)

发布时间:2023-12-21 06:40:29 所属栏目:MySql 来源:DaWei
导读: 前面我们介绍过关于如何过滤数据,但是那些都是对已经确定的值进行过滤的。在实际生活中,我们很可能需要类似这样的搜索,列出文本中包含关键字“Freeman”的语句。显然,我们用之

前面我们介绍过关于如何过滤数据,但是那些都是对已经确定的值进行过滤的。在实际生活中,我们很可能需要类似这样的搜索,列出文本中包含关键字“Freeman”的语句。

显然,我们用之前的简单操作肯定是不行地,必须使用通配符!

通配符:用来匹配值一部分的特殊字符

搜索模式: 由字面值、通配符或两者组合成的搜索条件。

通配符本身实际是SQL的WHERE子句中有特殊汉子的字符,在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示MySQL,后跟的搜索模式(我喜欢叫搜索样式),利用通配符而不是直接相等匹配来比较。

谓词:操作符何时不是操作符?答案是在它做谓词时。从技术上说,LIKE是谓词而不是操作符。虽然最终结果相同,但是应该对这个术语了解,SQL文档会提到。

part 1 百分号通配符使用

 

SELECT users.user_name, users.user_age FROM users WHERE users.user_name LIKE '%一东'

 

mysql 通配符 语句_mysql通配符使用_mysql 通配符

这个例子使用了搜索模式 ‘%一东’ 检索任何后面跟着一东的词。 注意:虽然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通配符使用,否则可能有意想不到的问题。

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章