mysql 模糊查询。我们一般写的sql语句是
SELECT 【字段】FROM 【表】WHERE 【字段】LIKE 【匹配表达式】
这里有四种匹配表达式:
1.%
匹配任意字段:select name from user where name like %三%;
这样就会匹配 张三 李三 李三毛等,但是注意这个如果在name字段上添加了索引,并不会去使用索引,而是全文的检索,如果我们写成这样 select name from user where name like 三%;就不会出现这种情况了
想起个实例我的猜测:百度的快速检索,每写一个自都会发送一个请求,但是都是根据类似与 三% 这样的前缀搜索实现的。
2._
这个是用来匹配一个字符的,我们写几个下划线,就会匹配几个字符。例如:
select name from user where name like _三;
只会去匹配张三 李三,不会匹配李小三 ,这样我们就可以去准确的去匹配几个字符的。
3.[]
中括号里面放的是我们要匹配的关键字 指定是一个字符
例如:select name from user where name like [李王]三;
就会匹配李三 王三,不会匹配李王三
4.[^]
这个的意思和3恰恰相反,这个就不会去匹配中括号的关键字,指定是一个字符 例如
select name from user where name like [^李王]三;
不会匹配李三 王三 会匹配孙三