ホームページ >データベース >mysql チュートリアル >SQL は WHERE 句での行値の比較をどのように処理しますか?
SQLの行値の詳しい説明
SQLのWHERE句では、(col1, col2) < (val1, val2)
のように行の値を比較することがよくあります。この記事では、この行値比較の構文と機能、およびデータベース クエリでの応用について詳しく説明します。
コアコンセプト
(col1, col2)
を使用して、行値の比較を実行します。 この構文は、特定の行の前後のデータ レコードを取得するために「キーセット ページネーション」でよく使用されます。
構文と機能
式 (col1, col2) < (val1, val2)
は、col1 < val1
の場合は式が true、col1 = val1
と col2 < val2
の場合は式も true、それ以外の場合は false を意味します。
これは、より冗長な等価表現である
とは異なります。<code class="language-sql">(col1 < val1) OR (col1 = val1 AND col2 < val2)</code>
PostgreSQL は、(col1, col2)
または (col1 DESC, col2 DESC)
の複数列インデックスを利用して、そのようなクエリを最適化できます。行値の比較は
<code class="language-sql">col1 < val1 AND col2 < val2</code>
(1,1)
のような行の値を考慮すると、違いは明らかです。
その他のリソース
詳細については、Markus Winand のプレゼンテーション「PostgreSQL でページネーションする正しい方法」を参照してください。
行値の比較については 20 ページで説明し、サポートする行列は 45 ページで提供されています。
以上がSQL は WHERE 句での行値の比較をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。