MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

テーブルからNULLの行を取得するために比較演算子(=)を使用できないのはなぜですか?


NULLは値ではないことがわかっているため、=(比較演算子)は使用できません。テーブルからNULLの行を取得する場合は、MySQLクエリでISNULL演算子を使用する必要があります。 「従業員」テーブルのデータを使用した次の例では、それを示します-

mysql> Select * from Employee WHERE Salary IS NULL;

+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 7  | Aryan | NULL   |
| 8  | Vinay | NULL   |
+----+-------+--------+

2 rows in set (0.00 sec)

上記のクエリはISNULL演算子を使用し、給与列がNULLである出力を生成します。

mysql> Select * from employee where salary = NULL;
Empty set (0.00 sec)
上記のクエリは=(比較演算子)を使用するため、NULLは値ではないため、空のセットが生成されます。


  1. MySQLで、NULLで「=」、「<」、「<>」などの算術演算子を使用できないのはなぜですか?

    その背後にある理由は、「=」、「<」、「<>」などの比較演算子でNULLを使用すると、比較から意味のある結果が得られないためです。この概念を示す次の例を考えてみましょう- mysql> Select 10 = NULL, 10< NULL, 10<>NULL; +-----------+----------+----------+ | 10 = NULL | 10< NULL | 10<>NULL | +-----------+----------+----------+ |      NULL |   &nbs

  2. Javaを使用してMySQLデータベースのテーブルから最後のレコードを取得しますか?

    MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用する必要があります。まず、MySQLデータベースにテーブルを作成します。ここでは、「サンプル」データベースに次のテーブルを作成します mysql> create table javaGetDataDemo - > ( - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > FirstName varchar(10), - > LastName varchar(10) - > ); Query OK, 0 rows