MySQL は非常に人気のあるリレーショナル データベース管理システムです。最も広く使用されている言語の 1 つは SQL です。SQL ステートメントを通じてさまざまな複雑なデータ操作を実装できます。 MySQL では、in クエリは非常に一般的なクエリ方法です。クエリ条件 (つまり、in 以降の値) に一致する指定されたカラム内のレコードをクエリできます。同じ条件で複数の連続した OR クエリと比較すると、in クエリは、クエリがより簡潔かつ明確になります。
しかし、実際の開発では、エラーを回避したりクエリの効率を向上させるために、クエリ内にいくつかの制限を設ける必要があることがよくあります。以下では、クエリの制限における一般的な事項について説明します。
1. in クエリの構文と原則
in query の制限について説明する前に、まず in query の構文と原則を理解しましょう。
in クエリの構文は次のとおりです。
SELECT 列名
FROM テーブル名
WHERE 列名 IN (値 1, 値 2, ...);
たとえば、orders テーブル内の商品番号 1、3、および 5 を含む注文情報をクエリします。
SELECT * FROMorders WHERE Goods_id IN (1,3,5);
inクエリの原則は次のとおりです:
- MySQL はメモリ内にハッシュ テーブル (ハッシュ テーブル) を開き、要件を満たすすべての値を保存します。
- テーブルをスキャンするプロセス中に、MySQL はテーブル内の各行を取り出し、使用する必要があるカラムの値を抽出し、それがハッシュ テーブル内のいずれかの値と等しいかどうかを確認します。 。
- 要件を満たしている場合は、結果セットに追加されます。
したがって、クエリの効率は、クエリ条件の数、メモリ ハッシュ テーブルのサイズ、テーブル内のレコード数などの多くの要因によって影響されます。次に、inクエリの制限について説明します。
2. クエリの制限事項
1. クエリ条件が多すぎる
クエリ内の条件が増えるほど、MySQL ハッシュ テーブルが占有するメモリが大きくなります。効率が遅くなります。したがって、実際の開発では、クエリ条件にあまり多くの数を使用しないようにする必要があります。クエリ条件が多すぎる場合は、クエリ条件を複数に分割し、サブクエリを使用することでクエリを最適化できます。
たとえば、orders テーブル内の商品番号 1、3、5、7、および 9 の注文情報をクエリするには、次のように記述できます。
SELECT * FROMorders WHERE Goods_id IN (1,3, 5) OR Goods_id IN (7,9);
Or:
SELECT * FROM 注文 WHERE Goods_id IN (SELECT ID FROM Goods WHERE id in (1,3) ,5,7,9 ));
このようにして、クエリ条件を分割してクエリ効率を向上させることができます。
2. クエリ条件での繰り返し
in クエリでは、クエリ条件が繰り返されるとクエリ効率が低下し、結果セットに重複データが表示される可能性があります。したがって、クエリ条件を記述するときは、クエリ条件の重複を避ける必要があります。
たとえば、orders テーブル内の商品番号 1、1、3、5、および 7 の注文情報をクエリするには、次のように記述できます。
SELECT * FROMorders WHERE Goods_id IN (1,3, 5,7);
このようにして、クエリ条件の繰り返しを回避し、クエリ効率を向上させることができます。
3. in クエリ条件が空です
in クエリ条件に値が含まれていない場合、テーブル内のすべてのデータがクエリされます。クエリ効率が低下したり、不要なデータが表示される可能性があるため、クエリ条件を記述する際には空のクエリ条件を避ける必要があります。
たとえば、orders テーブル内の商品番号 1、3、5、および 7 の注文情報をクエリするには、次のように記述できます。
SELECT * FROMorders WHERE Goods_id IN ( 1,3,5, 7);
このようにして、クエリ条件が空になることを回避し、クエリ効率を向上させることができます。
4. in クエリ条件のタイプが一致しません
in クエリを実行する場合、クエリ条件のタイプはテーブル内の列のタイプと一致する必要があります。一致しない場合、クエリは失敗します。 。したがって、クエリ条件を記述するときは、クエリ条件の型がテーブル内の列の型と一致していることを確認する必要があります。
たとえば、orders テーブル内の商品番号 1、3、5、および 7 の注文情報をクエリするには、次のように記述できます。
SELECT * FROMorders WHERE Goods_id IN ( 1,3,5, 7);
このようにして、クエリ条件のタイプがテーブル内の列のタイプと一致していることを確認して、クエリの失敗を回避できます。
5. in クエリと not in クエリを同時に使用する
in クエリと not in クエリを同時に使用すると、クエリの効率が低下します。したがって、実際の開発では、in クエリと "not in" クエリを同時に使用することは避けるべきです。
たとえば、注文テーブルの商品番号 1、3、5、7 の注文情報をクエリするが、商品番号 9 の注文情報は含まない場合は、次のように記述できます。
SELECT * FROMorders WHERE Goods_id IN (1,3,5,7) AND Goods_id NOT IN (9);
このようにして、クエリ内および「非中」クエリの使用を回避できます。同時にクエリ効率も向上します。
3. 概要
この記事の導入を通じて、in query の文法原則と一般的な制限について理解しました。実際の開発では、多すぎるクエリ条件の使用を避け、クエリ条件の重複を避け、空のクエリ条件を避け、クエリ条件の種類がテーブル内の列の種類と一致することを確認し、クエリ内での使用や「not」の使用を避ける必要があります。特定の状況に応じて同時に実行します。「in」クエリにより、クエリの効率が向上し、クエリ エラーの可能性が減ります。
以上がクエリにおける mysql の構文と一般的な制限事項の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

MySQLは、データの保存と管理に適した効率的なリレーショナルデータベース管理システムです。その利点には、高性能クエリ、柔軟なトランザクション処理、豊富なデータ型が含まれます。実際のアプリケーションでは、MySQLはeコマースプラットフォーム、ソーシャルネットワーク、コンテンツ管理システムでよく使用されますが、パフォーマンスの最適化、データセキュリティ、スケーラビリティに注意を払う必要があります。

SQLとMySQLの関係は、標準言語と特定の実装との関係です。 1.SQLは、リレーショナルデータベースの管理と操作に使用される標準言語であり、データの追加、削除、変更、クエリを可能にします。 2.MYSQLは、SQLを運用言語として使用し、効率的なデータストレージと管理を提供する特定のデータベース管理システムです。

INNODBは、レドログと非論的なものを使用して、データの一貫性と信頼性を確保しています。 1.レドログは、クラッシュの回復とトランザクションの持続性を確保するために、データページの変更を記録します。 2.Undologsは、元のデータ値を記録し、トランザクションロールバックとMVCCをサポートします。

説明コマンドのキーメトリックには、タイプ、キー、行、および追加が含まれます。 1)タイプは、クエリのアクセスタイプを反映しています。値が高いほど、constなどの効率が高くなります。 2)キーは使用されているインデックスを表示し、nullはインデックスがないことを示します。 3)行はスキャンされた行の数を推定し、クエリのパフォーマンスに影響します。 4)追加の情報を最適化する必要があるというFilesortプロンプトを使用するなど、追加情報を提供します。

Temporaryを使用すると、MySQLクエリに一時テーブルを作成する必要があることが示されています。これは、異なる列、またはインデックスされていない列を使用して順番に一般的に見られます。インデックスの発生を回避し、クエリを書き直し、クエリのパフォーマンスを改善できます。具体的には、expliect出力に使用を使用する場合、MySQLがクエリを処理するために一時テーブルを作成する必要があることを意味します。これは通常、次の場合に発生します。1)個別またはグループビーを使用する場合の重複排除またはグループ化。 2)Orderbyに非インデックス列が含まれているときに並べ替えます。 3)複雑なサブクエリを使用するか、操作に参加します。最適化方法には以下が含まれます。1)OrderbyとGroupB


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
