关于Mysql中的不等于

Mysql的不等于:!=和<>

用法:

select * from tab_name where column_name != 'value';
select * from tab_name where column_name <> 'value';

我只想说,对于不等于来说,这两种方式都可行。查出来的数据是一样的,但是我这边要给大家说一种情况。

一个不等于判断条件查不出NUll数据

例:
mysql中有一个t_user表,其中有id, username,password字段,有以下几条数据

id  username    password
1	xiaoming1	password
2	xiaoming2	123
3	xiaoming3	NULL
4	xiaoming4	123
5	xiaohong	NULL

1.查出password不等于123的数据,预期结果:第1,3,5这3条数据

select * from t_user where password != 123;
-- 或
select * from t_user where password <> 123;

结果:只查出了一条数据

id  username    password
1	xiaoming1	password

两种写法查出来的数据一样,问题显而易见,没有查出来password是NUll的数据。
解决方法:加入NULL值判断

select * from t_user where password != 123 or password is NULL;
-- 或
select * from t_user where password <> 123 or password is NULL;

2.查出username中包含xiaoming且password不等于123的数据

select * from t_user where username like '%xiaoming%' and password != 123 or password is NULL;
-- 或
select * from t_user where username like '%xiaoming%' and password <> 123 or password is NULL;

结果

1	xiaoming1	password
3	xiaoming3	
5	xiaohong	

哪来的xiaohong啊喂?正确写法

select * from t_user where username like '%xiaoming%' and (password <> 123 or password is NULL);
-- 或
select * from t_user where username like '%xiaoming%' and (password <> 123 or password is NULL);

所以,同一字段联合判断要加()。

结语

什么是国际知识点?唉!(战术后仰)。学到的快拿出小本本记下来,要考的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值