如何使用單一 SQL 查詢對錶中的記錄重新排序?

Mary-Kate Olsen
發布: 2024-11-06 04:23:02
原創
1016 人瀏覽過

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

使用單一SQL 查詢重新排序記錄

在有「位置」欄位來排序其外觀的食品表中,單一SQL查詢可以基於對單一記錄的變更來更新多個記錄。這對於重新排序特定清單中的項目特別有用。

假設我們有一個像這樣的表:

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

要將梨子移到薯條之前,我們可以增加之間所有項目的位置1。

但是,大多數解決方案都涉及多個查詢,這可能效率低下。相反,可以使用單一查詢對記錄重新排序:

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,並且梨子和薯片之間的所有項目都會相應遞增。

到重新排序任何項目,只需將「pears」替換為要移動的項目的名稱,並根據需要調整差異。

以上是如何使用單一 SQL 查詢對錶中的記錄重新排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板