MySQLキーワードDistinctの詳細な紹介

MySQLキーワードDistinctの詳細な紹介

MySQLキーワードDistinctの使い方の紹介

DDL

SQLを準備します:

テーブルテストを作成(id bigint not null 主キー auto_increment,
   名前varchar(10)がnullでない、
   電話番号varchar(10)がnullでない、
   電子メールvarchar(30) nullでない)エンジン=innodb;

データを準備する:

 テストに挿入(名前、電話番号、メールアドレス)値('alibaba'、'0517'、'[email protected]')。
  テストに挿入(名前、電話番号、メールアドレス)値('alibaba'、'0517'、'[email protected]')。
  テストに(名前、電話番号、メールアドレス)値('baidu'、'010'、'[email protected]')を挿入します。
  テストに挿入(名前、電話番号、メールアドレス)値('tencent'、'0755'、'[email protected]')。
  テストに挿入(名前、電話番号、メールアドレス)値('vipshop'、'020'、'[email protected]')。
  テストに挿入(名前、電話番号、メールアドレス)値('ctrip'、'021'、'[email protected]')。
  テストに挿入(名前、電話番号、メールアドレス)値('suning'、'025'、'[email protected]')。

クエリ データを次の図に示します。

「お金」という言葉の意味は何ですか? title=

最初のケースでは、次の図に示すように、Distinct キーワードを使用して単一列のデータをクエリします。

「a」という単語の意味は何ですか? title=

結果: 名前フィールドは重複排除され、期待どおりになりました。重複するフィールド値 alibaba は確かに除外されています。

2 番目のケースでは、次の図に示すように、Distinct キーワード (先頭) を使用して複数のデータ列をクエリします。

「独立」という言葉の意味は何ですか? title=

結果: 名前フィールドは重複排除されていますが、結果は期待どおりではありません。重複フィールド値 alibaba は除外されません。

2 番目のケースでは、次の図に示すように、Distinct キーワード (後) を使用して複数のデータ列をクエリします。

「見えない」という言葉の意味は何ですか? title=

結果: 名前フィールドは重複排除されましたが、結果は期待どおりではありません。エラー コード 1064 で SQL 例外がスローされます。

解決:

サブクエリを使用せず、グループ化を使用して解決します。

瑙e喅鏂瑰紡

要約: SQL クエリを 1 つのステートメントで解決できる場合は、SQL、特にサブクエリの複雑さを増やさないようにしてください。 ! !

上記は、MySQL キーワード Distinct の使用法についての説明です。ご質問がある場合は、メッセージを残すか、このサイトで議論してください。お読みいただきありがとうございます。皆様のお役に立てれば幸いです。このサイトを応援していただき、ありがとうございます。

以下もご興味があるかもしれません:
  • Explainキーワードに基づいてMySQLインデックス機能を最適化する方法
  • mysql 実行プラン ID が空である (UNION キーワード) の詳細な説明
  • jq.ajax+php+mysql でキーワードあいまいクエリを実装する (例の説明)
  • OR キーワードを使用した MySql 複数条件クエリ ステートメント
  • mySQLキーワードの実行優先度の説明

<<:  Linux ncコマンドの概要

>>:  JS初心者が配列を処理するための実践的な方法のまとめ

推薦する

Vue 3.0 カスタムディレクティブの使い方

目次1. カスタム指示1. グローバルカスタム指示を登録する2. グローバルカスタム指示を使用する3...

Ubuntu でパスワードを変更し、パスワードの複雑さのポリシーを設定する方法

1. パスワードを変更する1. 一般ユーザーのパスワードを変更する パスワード現在のパスワードを入力...

ウェブページのカラーマッチングにおけるオーバーラップとソフトカラーマッチングの手法を詳しく説明

この記事には、細かい点は一切なく、カラーマッチングのテクニックをシェアするだけです。とてもシンプルで...

CSS3 で QR コードスキャン効果を実装する例

オンラインプレビューhttps://jsrun.pro/AafKp/まず効果を見てみましょう:最初の...

ボリュームを使用してホストと Docker コンテナ間でファイルを転送する方法

以前、Docker コンテナとローカル マシン間のファイル転送に関する記事を書きました。しかし、この...

JS の 3 つの主要な問題、非同期性とシングルスレッドについて簡単に説明します。

目次シングルスレッド非同期シングルスレッドしかし、開発中にネットワーク リクエストやスケジュールされ...

MySQL コマンドを使用してインデックスを作成、削除、およびクエリする方法の紹介

MySQL データベース テーブルでは、インデックスを作成、表示、再構築、削除できるため、クエリ速度...

JavaScriptオフセットは、ウィンドウ内でのマウス座標の取得とモジュールのドラッグを実装します。

オフセットOffset はオフセットです。関連プロパティの offset シリーズを使用すると、次の...

jsは双方向データバインディング(アクセサ監視)を実現します

この記事の例では、双方向データバインディングを実現するためのjsの具体的なコードを参考までに共有して...

nginx がどのようにして高いパフォーマンスとスケーラビリティを実現するのかを深く理解する

NGINX の全体的なアーキテクチャは、連携して動作する一連のプロセスによって特徴付けられます。メイ...

vue-amap のインストールと使用手順

以前、Amap API を非同期にロードする方法を紹介しました。今回は、vue-amap の使用方法...

docker version es、milvus、minio 起動コマンドの詳細な説明

1. es起動コマンド: docker run -itd -e TAKE_FILE_OWNERSHI...

画像ボタンをフォームのリセットボタンとして使用する方法

フォームを作成するときに、送信ボタンとリセットボタンを配置することがよくあります。ページの外観を考慮...

Vue はコンポーネント間の通信をどのように実装しますか?

目次1. 父と息子のコミュニケーション1.1 親コンポーネント --> 子コンポーネント1.2...

MySQL トランザクション分析

取引トランザクションはビジネス ロジックの基本単位です。各トランザクションは一連の SQL ステート...