Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL列的值为空,但为“0”;是空的;它不起作用了_Mysql_Sql - Fatal编程技术网

MySQL列的值为空,但为“0”;是空的;它不起作用了

MySQL列的值为空,但为“0”;是空的;它不起作用了,mysql,sql,Mysql,Sql,我有一个mySQL表和一个包含null和notnull数据的列 在运行query和visibly时,我可以看到BLOCKER列具有空值 mysql> select count(1), BLOCKER from mysql.PRSSTATE group by BLOCKER; +----------+----------------+ | count(1) | BLOCKER | +----------+----------------+ | 193403 |

我有一个mySQL表和一个包含null和notnull数据的列

在运行query和visibly时,我可以看到BLOCKER列具有空值

mysql> select count(1), BLOCKER from mysql.PRSSTATE group by BLOCKER;
+----------+----------------+
| count(1) | BLOCKER        |
+----------+----------------+
|   193403 |                | 
|      350 | Beta           | 
|       24 | Build          | 
若我发出如下所示的查询,我得到的计数(1)为零

mysql> select count(1) from mysql.PRSSTATE where BLOCKER  is NULL;
+----------+
| count(1) |
+----------+
|        0 | 
+----------+
1 row in set (0.13 sec)

我的疑问是,它可能具有特殊的特性,因为我已经将数据从其他系统迁移到这个表中。想知道如何解决这个问题。它应该通过“is null”语句显示。

拦截器的长度可能为零:

select count(1) from mysql.PRSSTATE where (BLOCKER  is NULL or BLOCKER = "");

阻止程序
的长度可能为零:

select count(1) from mysql.PRSSTATE where (BLOCKER  is NULL or BLOCKER = "");

这里的问题是,您错误地假设阻止程序为空。实际上,您存储的是空字符串(“”),而不是空值。您应该修改查询以匹配NULL和“”值:

或者,当您没有拦截器列的数据或只是不传递任何内容时,修改脚本(或用于创建这些记录的任何内容)以插入NULL值,并确保拦截器列的定义设置为默认NULL

如果BLOCKER为NULL,则您将从第一次查询中获得以下输出:

+----------+----------------+
| count(1) | BLOCKER        |
+----------+----------------+
|   193403 | NULL           | 
|      350 | Beta           | 
|       24 | Build          | 
+----------+----------------+

这里的问题是,您错误地假设阻止程序为空。实际上,您存储的是空字符串(“”),而不是空值。您应该修改查询以匹配NULL和“”值:

或者,当您没有拦截器列的数据或只是不传递任何内容时,修改脚本(或用于创建这些记录的任何内容)以插入NULL值,并确保拦截器列的定义设置为默认NULL

如果BLOCKER为NULL,则您将从第一次查询中获得以下输出:

+----------+----------------+
| count(1) | BLOCKER        |
+----------+----------------+
|   193403 | NULL           | 
|      350 | Beta           | 
|       24 | Build          | 
+----------+----------------+

这是一个空字符串,不是空值。这是一个空字符串,不是空值。