1.distinct语句时,所有null值都是相等的,所以distinct后只会留下一个null值。
2.group by语句在不和集合函数连用时与distinct相同,但是两者不同的是group by会默认排序,但是distinct不会。
3.and操作中,null and true->null;null and false ->false ;null and null ->null.在mysql中0代表null,非0代表true。判断and条件是遵循短路原则。
4.or操作中,null or true ->true ;null or false ->null ;null or null ->null.遵循短路原则。在语句中既有or 又有and的情况下,先计算and后计算or。
5.(expr|column) in ('value1','value2'......).如果column的值或者表达式的计算结果在list中,返回1,否则0.
如果list中的值全是常数,那么mysql分3步工作:1.基于column类型或者表达式计算值。2.将list中的值排序 3.用二分查找算法查找值。
如果表达式的值或者list中的某个value为null,那么in操作返回null。
6.between语句:expr [NOT