ホームページ  >  記事  >  データベース  >  単一の SQL クエリでテーブル内のレコードを並べ替える方法

単一の SQL クエリでテーブル内のレコードを並べ替える方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-06 04:23:02957ブラウズ

How to Reorder Records in a Table with a Single SQL Query?

単一 SQL クエリによるレコードの並べ替え

見た目を順序付ける「位置」フィールドを持つ食品のテーブルでは、単一のSQL クエリは、1 つのレコードに対する変更に基づいて複数のレコードを更新できます。これは、特定のリスト内の項目を並べ替える場合に特に便利です。

次のようなテーブルがあるとします。

id listID name position
1 1 cheese 0
2 1 chips 1
3 1 bacon 2
4 1 apples 3
5 1 pears 4
6 1 pie 5

チップの前にペアを移動するには、チップ間のすべての項目の位置を増分できます。

ただし、ほとんどのソリューションには複数のクエリが含まれるため、非効率的になる可能性があります。代わりに、単一のクエリを使用してレコードを並べ替えることができます。

UPDATE my_table
SET position = position + CASE
    WHEN name = 'pears' THEN -3
    ELSE 0
    END
WHERE listID = 1 AND position BETWEEN 1 AND 4;

この式により、梨が位置 1 に移動し、それに応じて梨とチップの間のすべての項目が増分されます。

Toアイテムを並べ替えるには、「梨」を移動するアイテムの名前に置き換え、必要に応じて違いを調整します。

以上が単一の SQL クエリでテーブル内のレコードを並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。