ホームページ >データベース >mysql チュートリアル >SQL WHERE 句の行単位の比較 `(col1,col2) < (val1, val2)` はどのように機能しますか?
SQL WHERE 句の行単位の比較: (col1, col2) < (val1, val2)
WHERE 句内の SQL 式 (col1, col2) < (val1, val2)
は行単位の比較を実行します。 これは次のことを意味します:
col1
は val1
と比較されます。 col1
が val1
より小さい場合、条件全体が true になります。col1
が val1
と等しい場合、col2
は val2
と比較されます。 この条件は、col2
が val2
より小さい場合にのみ true となります。用語
このタイプの比較は、次のように呼ばれることがあります。
アプリケーション
この構文の一般的な使用例は、データベース テーブルからデータのサブセットを取得する効率的な方法である「キーセット ページネーション」です。
データベースのサポート
PostgreSQL は、完全なインデックスの使用を含む行単位の比較の包括的なサポートで、主要なリレーショナル データベース管理システム (RDBMS) の中で際立っています。
PostgreSQL の簡潔な構文
PostgreSQL では、(col1, col2) < (val1, val2)
がこの比較を表現する標準的かつ最も効率的な方法です。
同等の長い形式
行ごとの比較は、機能的にはより複雑で効率の低い式と同等です。
<code class="language-sql">(col1 < val1) OR (col1 = val1 AND col2 < val2)</code>
複数列インデックスのサポート (PostgreSQL)
PostgreSQL は、(col1, col2)
または (col1 DESC, col2 DESC)
の複数列インデックスを利用して行単位の比較を最適化できます。 昇順列と降順列が混在するインデックス (例: (col1 ASC, col2 DESC)
) は、このタイプの比較ではサポートされていないことに注意してください。
AND 条件との違い
行単位の比較と論理 AND 条件を区別することが重要です。
<code class="language-sql">col1 < val1 AND col2 < val2</code>
AND 条件では、両方の不等式が独立して真であることが必要です。 行単位の比較では、最初の条件が true の場合にのみ 2 番目の条件が評価されます。
以上がSQL WHERE 句の行単位の比較 `(col1,col2) < (val1, val2)` はどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。