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
不会吧,你是那个版本的,还可以把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
不会吧,你是那个版本的,还可以把null的查找出来,我这里怎么就是不可以
#7
用 ISNULL 函数 ,空值: ISNULL(ssss)=1 反之 ISNULL(ssss)=0