mysql 查询不等于1的所有值的问题

沛哥儿
博客专家认证
2009-04-13 03:44:16
我想在mysql 的select * from A where isreg<>'1'
我想将所有值不为1的都找出来。isreg为char型 isreg中有为null的和为0 的,我想把不等于1的找出来,但是找的时候结果为空。找不到想要的结果,请各位帮帮忙
...全文
2845 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-04-13
  • 打赏
  • 举报
回复
http://dev.mysql.com/doc/refman/5.1/zh/tutorial.html#working-with-null

3.3.4.6. NULL值操作
NULL值可能令人感到奇怪直到你习惯它。概念上,NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。为了测试NULL,你不能使用算术比较 操作符例如=、<或!=。为了说明它,试试下列查询:

mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
很显然你不能通过这些比较得到有意义的结果。相反使用IS NULL和IS NOT NULL操作符:

mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+
请注意在MySQL中,0或 NULL意味着假而其它值意味着真。布尔运算的默认真值是1。
ACMAIN_CHM 2009-04-13
  • 打赏
  • 举报
回复
select *
from A
where isreg <>'1' and isreg is null


null 的任何运算都为 null (除了 is null, ifnull())
WWWWA 2009-04-13
  • 打赏
  • 举报
回复
or
select * from A where ifnull(isreg,'0')='0'
WWWWA 2009-04-13
  • 打赏
  • 举报
回复
select * from A where isreg is null or isreg='0'

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧