mysql 怎么样把空值或null查询出来

时间:2022-09-18 21:00:58
我的MYQL5.5表结构如下
CREATE TABLE `t` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` varchar(100) NOT NULL COMMENT '用户UID',
  `text` text COMMENT '信息内容',
  PRIMARY KEY (`id`)


1、然后用第一条查询语句查询表:SELECT * from t;结果如下,其中id编号为1对应的text的值为我插入的空字符串,编号为2的为我设置的null值,用此语句查询,可以把表中所有记录全部查出来。

1 11
2 22
3 33 aa
4 44 bb


2、用查询语句:SELECT * from t where text !='aa'
1	11	
4 44 bb

对此,很是不解,为什么返回的是两条记录,不是有三条记录的值不等于aa吗?有没有什么办法用一条语句可以实现我的需求啊?

3、SELECT * from t where text !=null,用这语句,结果返回记录0,更不解了??

7 个解决方案

#1


 where text is null,

#2


null值比较特殊  不同于空字符   

#3


没有人回答我的问题么

#4


改成SELECT * from t where text is not null;

#5



mysql> select * from t where text!='aa';
+----+-----+------+
| id | uid | text |
+----+-----+------+
|  1 | 11  |      |
|  2 | 22  | null |
|  4 | 22  | bb   |
+----+-----+------+
3 rows in set (0.00 sec)
我的没有错啊。。。。

#6


引用 5 楼 linux_PHP_ 的回复:

mysql> select * from t where text!='aa';
+----+-----+------+
| id | uid | text |
+----+-----+------+
|  1 | 11  |      |
|  2 | 22  | null |
|  4 | 22  | bb   |
+----+-----+------+
3 rows in set (0.00 sec)
我的没有错啊。。。。
不会吧,你是那个版本的,还可以把null的查找出来,我这里怎么就是不可以

#7


用 ISNULL 函数 ,空值: ISNULL(ssss)=1 反之 ISNULL(ssss)=0

#1


 where text is null,

#2


null值比较特殊  不同于空字符   

#3


没有人回答我的问题么

#4


改成SELECT * from t where text is not null;

#5



mysql> select * from t where text!='aa';
+----+-----+------+
| id | uid | text |
+----+-----+------+
|  1 | 11  |      |
|  2 | 22  | null |
|  4 | 22  | bb   |
+----+-----+------+
3 rows in set (0.00 sec)
我的没有错啊。。。。

#6


引用 5 楼 linux_PHP_ 的回复:

mysql> select * from t where text!='aa';
+----+-----+------+
| id | uid | text |
+----+-----+------+
|  1 | 11  |      |
|  2 | 22  | null |
|  4 | 22  | bb   |
+----+-----+------+
3 rows in set (0.00 sec)
我的没有错啊。。。。
不会吧,你是那个版本的,还可以把null的查找出来,我这里怎么就是不可以

#7


用 ISNULL 函数 ,空值: ISNULL(ssss)=1 反之 ISNULL(ssss)=0