簡體   English   中英

MySql <> NULL和IS NOT NULL之間的區別

[英]Difference Between MySql <> NULL and IS NOT NULL

在我的數據庫中有一個varchar(255)列,對於某些記錄,它包含空值,當我解雇它時

SELECT * FORM my_table where some_column <> NULL;

沒有任何回報

但什么時候被解雇了

SELECT * FORM my_table where some_column IS NOT NULL;

我得到了想要的記錄

你能解釋一下它們之間的主要區別以及何時使用<>和!=運算符。

來自Mysql 8參考:

您不能使用算術比較運算符(如=,<或<>)來測試NULL。 因為與NULL進行任何算術比較的結果也是NULL,所以無法從這種比較中獲得任何有意義的結果。

在mysql中,字符串列可以為空=''或NUL(不是賦值)

所以你應該使用不空

  SELECT * FORM my_table where some_column <> '';

要么

  SELECT * FORM my_table where some_column  != '';

或不等於一個值

  SELECT * FORM my_table where some_column <> 'my_value';
  SELECT * FORM my_table where some_column != 'my_value';

如果不為null,則必須使用特殊運算符IS NOT NULL

SELECT * FORM my_table where some_column IS NOT NULL;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM