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初心者が配列を処理するための実践的な方法のまとめ

推薦する

PHP-HTMLhtml 重要な知識ポイントメモ(必読)

1. フレームセット、フレーム、iframeを使用して複数のウィンドウを実現する2. 画像上のマッ...

HTML テーブル マークアップ チュートリアル (40): ヘッダーの暗い境界線の色属性 BORDERCOLORDARK

テーブルヘッダーでは、暗い境界線の色を個別に定義できます。基本的な構文<TH 境界線の色を暗く...

Zabbixを使用してMySQLを監視する方法

Zabbix 導入ドキュメントzabbix導入後zabbixエージェントの操作1. MySQLを監視...

MySQLクエリが遅い場合の理由と解決策

Python プログラムを書き、Mysql ライブラリを集中的に操作したためです。データ量が多くない...

フロントエンドのパフォーマンス最適化を学ぶ準備として、HTMLページのレンダリングプロセスを理解する

現在、フロントエンドのパフォーマンス最適化について学んでいます。適切な解決策を見つけ、パフォーマンス...

Echatsチャートの大画面適応を実装する方法

目次説明する成し遂げるプロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりです要約す...

iframeを使用してページを呼び出すとページがキャッシュされるかどうかの簡単な分析

最近、毎日変更されるページを iframe を使用して呼び出す必要があるプロジェクトがあります。その...

Docker で Confluence をデプロイするための完全な手順

Confluence は有料ですが、クラックして使用できます (購入が推奨され、正規版がサポートされ...

Vue ユニットテストに関する予備調査

目次序文なぜユニットテストを導入するのですか?ユニットテストの概要テスト開発パターン1. テスト駆動...

シンプルなショッピングフォームを実装するJavaScript

この記事では、簡単なショッピングフォームを実装するためのJavaScriptの具体的なコードを参考ま...

Vue でログインと登録テンプレートを実装するためのサンプルコード

テンプレート 1: ログイン.vue <テンプレート> <p class=&quo...

MySQLが間違ったインデックスを選択する理由と解決策

MySQL では、テーブルに複数のインデックスを指定できますが、ステートメントの実行時に、使用するイ...

Nginx リバース プロキシと負荷分散を実装する方法 (Linux ベース)

ここで nginx のリバース プロキシを試してみましょう。リバースプロキシ方式とは、インターネット...

sqlite を mysql スクリプトに移行する方法

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 パーレル # # https:/...

Vueダイナミックフォームの詳細な応用

概要バックグラウンド管理システムには多くのフォーム要件があります。データをjson 形式で書き込み、...