Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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 SQL--SELECT返回列为True时的值,但不返回列为False时的值_Mysql_Sql_Mysql Python - Fatal编程技术网

Mysql SQL--SELECT返回列为True时的值,但不返回列为False时的值

Mysql SQL--SELECT返回列为True时的值,但不返回列为False时的值,mysql,sql,mysql-python,Mysql,Sql,Mysql Python,%%读sql SELECT Language, IsOfficial FROM countrylanguage c JOIN country a ON a.Code = c.CountryCode WHERE Name = "United States" AND IsOfficial = False; 基本上,我有一段代码列出了一个国家的语言(基于现有的表) 当我设置Isoficial=True(该语言是该国家的官方语言)时,它会正确显示Isofi

%%读sql

SELECT Language, IsOfficial
  FROM countrylanguage c
  JOIN country a 
    ON a.Code = c.CountryCode
 WHERE Name = "United States"
   AND IsOfficial = False;
基本上,我有一段代码列出了一个国家的语言(基于现有的表)

当我设置Isoficial=True(该语言是该国家的官方语言)时,它会正确显示Isoficial=True的语言

即使删除以AND开头的行,is也会为ISOFICIAL显示所有带True或False的语言

但是,当我设置且Isoficial=False时,它根本不显示任何内容


为什么它不显示非官方语言?

我想
isoficial
可能实际上是
NULL
而不是
false
。您可以尝试:

where not (isOfficial <=> true)
where not(等位真)

MySQL没有实际的布尔数据类型

在MySQL中,零被视为false,非零值被视为true。要使用布尔文字,请使用分别计算为1和0的常量TRUE和FALSE


检查Isoficial的数据库类型。如果您不满足条件Isoficial=false,那么Isoficial实际上不是零,这是另外一回事。

Null值总是与false比较,因此如果Isoficial为Null,那么原始测试都不会返回该记录。