Heim >Datenbank >MySQL-Tutorial >MySQL查询对NULL的处理_MySQL

MySQL查询对NULL的处理_MySQL

WBOY
WBOYOriginal
2016-06-01 13:10:17999Durchsuche

有一个字段blist,如果查询where blist <> 'B'时为什么那些blist为NULL的记录查不出?怎么写才能查出NULL值记录?
 
回答:
<pre class="best-text mb-10">Null 值不能使用普通的算术运算符来比较,对这些它什么都不返回。只能靠你自己的逻辑流程,在查询语句中再添加where blist<>'B' or blist is null;

在SQL中,NULL值在于任何其他值甚至NULL值比较时总是假的(FALSE)。包含NULL的一个表达式总是产生一个NULL值,除非在包含在表达式中的运算符和函数的文档中指出。在下列例子,所有的列返回NULL: 如果你想要寻找值是NULL的列,你不能使用=NULL测试。下列语句不返回任何行,因为对任何表达式,expr = NULL是假的: mysql> SELECT * FROM my_table WHERE phone = NULL; 要想寻找NULL值,你必须使用IS NULL测试。下例显示如何找出NULL电话号码和空的电话号码: mysql> SELECT * FROM my_table WHERE phone IS NULL; mysql> SELECT * FROM my_table WHERE phone = "";
为了有助于NULL的处理,你能使用IS NULL和IS NOT NULL运算符和IFNULL()函数。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn