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

NULLを返すサブクエリでEXISTS演算子を使用した場合、MySQLはどのように評価しますか?


EXIST演算子で使用されるサブクエリがNULLを返す場合、式EXIST NULLはTRUEを返し、MySQLは外部クエリに基づいた結果を返します。表「顧客」からの次のデータを使用した簡単な例を使用して理解できます-

mysql> Select * from Customers;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
| 1           | Rahul    |
| 2           | Yashpal  |
| 3           | Gaurav   |
| 4           | Virender |
+-------------+----------+
4 rows in set (0.00 sec)

以下のMySQLクエリには、NULLを返すEXIST演算子を含むサブクエリがあります。この場合、式EXIST NULLはTRUEを返すため、結果セットは外部クエリに基づいています。

mysql> SELECT Name from Customers Where EXISTS(Select NULL);
+----------+
| Name     |
+----------+
| Rahul    |
| Yashpal  |
| Gaurav   |
| Virender |
+----------+
4 rows in set (0.00 sec)

  1. MySQLでWITHROLLUPを正しく使用するにはどうすればよいですか?

    WITH ROLLUP-を使用するための構文は、次のとおりです。 select yourColumnName1,sum(yourColumnName2) from yourTableName  group by yourColumnName1 with rollup; まずテーブルを作成しましょう- mysql> create table DemoTable1622     -> (     -> EmployeeCountryName varchar(20),     -> EmployeeSal

  2. MySQLでCURDATEでCONTAINS()を使用するにはどうすればよいですか?

    このために、CONCAT()をCURDATE()とともに使用できます。MySQLにはCONTAINS()という名前の関数はありません。 まず、現在の日付を取得しましょう。現在の日付は次のとおりです- mysql> select curdate(); これにより、次の出力が生成されます- +------------+ | curdate()  | +------------+ | 2019-11-28 | +------------+ 1 row in set (0.00 sec) テーブルを作成します- mysql> create table DemoTable18