1.is null
//如果时null,返回0,否则返回1
select 1 is null,1 is not null; //0 ,1
不能使用>,<,<>,=来比较null,因为结果都是null
select 1=null,1<null,1>null,1<>null; //null,null,null,null
In MySQL, 0 or NULL means false and anything else means true. The default truth value from a boolean operation is 1.
在mysql中0,null表示false,其他都是true,默认的true值是1
0,null都是false,但是0不是null
select 0 is null,0 is not null,'' is null,'' is not null;//0,1,0,1
group by 会把null合并到一组
order by asc null 在最开始的,desc则在最后
2. null vs ''
insert into my_table(phone)values(null),('')
null 表示 phone is not know,不知道有没有phone
'' 表示 知道没有phone,因此设置phone为''
3. null+1=null concat(null,'a','b')=null,concat_ws(',',null,'a','b')=a_b
SELECT NULL, 1+NULL, CONCAT('Invisible',NULL); //null,null,null
一个包含NULL的表达式总是包含null
4. where null
where phone = null;
因为phone=null 的结果总是null,所以结果永远是false,所以永远没有数据