前面介绍的所有操作符都是针对已知值进行过滤的,但是这种过滤方式不是在什么时候都好用。利用通配符可以创建比较特殊数据的搜索模式
通配符:用来匹配值的一部分的特殊字符,为了使用通配符,必须使用LIKE操作符
搜索模式:由字面值、通配符或两者组合构成的搜索条件
- % 通配符(最常使用的通配符是百分号%。在搜索串中,%表示任何字符出现任意次数)
- 例如检索name字段,以小开头的词
SELECT * FROM user WHERE name LIKE '小%'
- 通配符可以在搜索模式中任意位置使用,下面使用两个通配符,它们位于模式的两端
- 请注意%匹配的是0个到多个字符
SELECT * FROM user WHERE name LIKE '%飞%'
- _ 通配符(下划线_通配符用途与%一样,但是它只匹配一个字符而不是多个)
SELECT * FROM user WHERE name LIKE '小_'
总结:
- MYSQL通配符很有用,但是这种功能是有代价的,通配符搜素效率要比其他搜索花的时间更长
- 注意通配符的位置,如果放错地方可能不会返回想要的数据
- 尾空格可能会干扰通配符匹配,例如在fly后面有一个或多个空格,则%fly将不会匹配它们,解决这个问题可以用%fly%去匹配,或者使用函数去掉首尾空格
- NULL也不能和通配符进行匹配