收集了上个星期在SQL开发中自己、同事、网友所碰到的4个Tips。各位看官请多加注意!

1. DISTINCT 查询不重复字段

查询不重复字段,也可以使用 group by;
如果还要查询计数, count(DISTINCT id) 也是一个不错的方法;
把 DISTINCT 放入子查询可以减少查询次数,注意因地制宜哦!


2. MySQL collation 编码错误 -> 同音字

因为数据表编码,连接编码的不统一,容易出现搜索到同音字;
比如 select * from name where lastName = ‘李’; 结果出来一大堆 ‘黎’ 、’离’ 、’厉’ 之类的同音字,
所以请保持编码的唯一性!

3. 模糊查询 like BINARY

MySQL中的模糊查询一般使用like, 而同第2点一样,编码不统一就会出错;
举个例子: 数据库编码是lian1, 我们直接连接数据库,查询时输入字符编码是gbk, 那么 select * from name where firstName like ‘%芳%’; 结果出来一把英文名字;
解决方法, 使用 like binary 代替 like。

4. 查询区间,BETWEEN min AND max

我们往往要查询某一个区间的数据,一般使用’< '、'>‘ 之类的判断符, 其实MySQL内置了 BETWEEN min AND max ,不妨一试。