mysql通配符进行模糊查询
在mysql数据库中,当我们需要模糊查询的时候 ,我们会使用到通配符。
首先我们来了解一下2个概念,一个是操作符,一个是通配符。
操作符
like就是SQL语句中的操作符,它的作用是指示在SQL语句后面的搜索模式是利用通配符而不是直接相等匹配进行比较。
注意:如果使用like操作符时没有使用通配符,那么效果是和等号是一致的。
SELECT id,title FROM table WHERE title like '张三';
这种写法就只能匹配张三的记录,而不能匹配像张三是个好人这样的记录。
通配符
%(百分号),_(下划线)就是通配符,%表示任何字符出现任意次数(可以是0次),_表示单个字符,用户如下:
1 SELECT id,title FROM table WHERE title like '张三%'; 2 SELECT id,title FROM table WHERE title like '%张三'; 3 SELECT id,title FROM table WHERE title like '%张三%';
1表示匹配以张三开始的记录,2表示匹配以张三结束的记录,3表示匹配含有张三的记录。
1 SELECT id,title FROM table WHERE title like '张三_'; 2 SELECT id,title FROM table WHERE title like '__张三';
1表示匹配像张三好这样的记录,2表示匹配像你好张三这样的记录。
使用注意
注意大小写,在使用模糊匹配时,也就是匹配文本时,mysql是可能区分大小的,也可能是不区分大小写的,这个结果是取决于用户对MySQL的配置方式。
注意尾部空格。
注意NULL,%可以匹配任意字符,但是不能匹配NULL。
合理使用
MySQL的通配符很有用,但这种功能是有代价的,通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长,这里给出一些使用通配符要记住的技巧。
不要过度使用通配符,如果其他操作符能达到相同的目的,应该 使用其他操作符。
在确实需要使用通配符时,除非绝对有必要,否则不要把它们用 在搜索模式的开始处,把通配符置于搜索模式的开始处,搜索起 来是最慢的。
仔细注意通配符的位置,如果放错地方,可能不会返回想要的数。