MySQL はリレーショナル データベース管理システム (RDBMS) です。 MySQL では、IN クエリは一般的なクエリ ステートメントです。データベースから指定された値を取得するために使用されます。 IN クエリの基本構文は次のとおりです。
SELECT * FROM table_name WHERE column_name IN (value1, value2, value3, ...);
このクエリは特定の列 (column_name) を返します。すべてのテーブルで、値が指定された複数の値 (value1、value2、value3 など) と一致する行。
MySQL では、IN クエリの原則は SET または TINYINT コレクションに基づいて実装されます。 SET または TINYINT コレクションは、列内のすべての可能な値を表すために使用されます。クエリされた値がコレクション内のいずれかの値と一致する場合、行が返されます。
SET コレクションは、列挙型列を含む列タイプです。各セットには複数の値を含めることができ、それぞれに一意の番号が付いています。 MySQL はビット マスクを使用してコレクションを表現します。各位置は値の有無を表します。この位置の値が 1 の場合、この値がセット内に存在することを意味し、それ以外の場合は存在しません。マスク計算の結果は整数です。たとえば、セットの値が (1,5) の場合、セット内の要素の対応するバイナリ ビットは 100001 で、計算結果は 33 になります。 IN クエリ ステートメントを使用してクエリを実行すると、MySQL はクエリ対象のデータの値をマスクに変換し、そのマスクに基づいてクエリを実行します。
TINYINT コレクションは、SET コレクションよりも小さいコレクション タイプであり、0 ~ 255 の数値にのみ適しています。 TINYINT コレクションを使用すると、より小さくて高速なインデックスを作成できます。
IN クエリの利点の 1 つは、複数の値を取得できることです。クエリで単一の値ではなく複数の値を使用すると、クエリ時間を大幅に短縮できます。さらに、IN クエリはサブクエリとともに使用することもできるため、クエリ コードが簡素化され、パフォーマンスが向上します。
一般に、この記事では、マスク計算方法や、SET および TINYINT コレクションを使用して実装された IN クエリの利点など、MySQL IN クエリの原理を詳細に紹介します。これらの内容を理解することは、MySQL 開発者が IN クエリをより深く理解し、より効率的なクエリを作成するためのリファレンスを提供するのに役立ちます。
以上がmysqlのinクエリの原則について話します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。