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

MySQLでMAX(distinct…)を実装する方法と、DISTINCTを使用しない場合の違いは何ですか?


MAX()でDISTINCTを使用する最初の構文を見てみましょう-

select max(DISTINCT yourColumnName) from yourTableName;

2番目の構文は次のとおりです。 DISTINCTを使用していません-

select max( yourColumnName) from yourTableName;

−上記の両方のクエリは、DISTINCTキーワードの有無にかかわらず同じ結果をもたらします。 MySQLは内部でMAX(yourColumnName)をDISTINCTキーワードに変換します。

例を見て、テーブルを作成しましょう-

mysql> create table DemoTable
(
   Number int
);
Query OK, 0 rows affected (1.50 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values(80);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(78);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(68);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(88);
Query OK, 1 row affected (0.10 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+--------+
| Number |
+--------+
|     80 |
|     88 |
|     78 |
|     88 |
|     68 |
|     88 |
+--------+
6 rows in set (0.00 sec)

ケース1 −以下は、MAX(DISTINCT ..)を実装するためのクエリです。−

mysql> select max(DISTINCT Number) from DemoTable;

これにより、次の出力が生成されます-

+----------------------+
| max(DISTINCT Number) |
+----------------------+
|                   88 |
+----------------------+
1 row in set (0.00 sec)

ケース2 −以下は、DISTINCTなしでMAX()を実装するためのクエリです-

mysql> select max(Number) from DemoTable;

これにより、次の出力が生成されます-

+-------------+
| max(Number) |
+-------------+
|          88 |
+-------------+
1 row in set (0.07 sec)

上記のように、どちらも同じ結果になります。


  1. MySQLのTINYINT(1)とブール値の違いは何ですか?

    TINYINT(1)とブール値の間に違いはありません。キーワードBoolまたはBooleanは内部でTINYINT(1)に変換されます。または、BoolまたはBooleanはTINYINT(1)と同義であると言えます。 まずテーブルを作成しましょう- mysql> create table DemoTable (    isMarried Boolean ); Query OK, 0 rows affected (1.77 sec) 表の説明を確認しましょう- mysql> desc DemoTable; これにより、次の出力が生成されます- +-----

  2. MySQLでは、!=NULLとISNOT NULLの違いは何ですか?

    値を!=NULLと比較すると、NULLが返されます。したがって、!=NULLは無意味です。 !=NULLとISNOT NULLの違いを確認するために、最初にテーブルを作成しましょう。 まずテーブルを作成しましょう- mysql> create table DemoTable1970    (    Value int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTa