您的問題涉及使用單一查詢更新多個資料庫記錄,特別是當變更基於單一記錄修改。在您的例子中,您希望根據特定項目的移動來調整清單中項目的順序。
有幾種方法可以使用 SQL 來實現此目的。您提到的一種方法涉及使用多個查詢。首先選擇相關記錄,然後使用程式碼修改資料並更新記錄。但是,正如您所指出的,由於其同步性質和多個查詢的潛力,這種方法並不理想。
另一個基於 SQL 的解決方案是利用以下語句:
<code class="sql">UPDATE my_table SET position = position * 10;</code>
This以方便記錄更新的方式修改資料。若要在清單中向上或向下移動項目,您可以相應地更新該項目的位置欄位。例如,要讓 Pears 成為第二個項目,您可以使用:
<code class="sql">UPDATE my_table SET position = 15 WHERE listId=1 AND name = 'Pears';</code>
這將為 Pears 分配比其先前值大 10 倍的位置。但是,如果繼續進行更改,專案位置之間可能會出現間隙。為了防止這種情況,請定期執行以下查詢:
<code class="sql">UPDATE my_table SET position = position * 10;</code>
這將確保每個項目之間始終有 9 個可用位置。透過實作這些 SQL 語句,您可以使用單一查詢有效率地更新多個記錄,從而簡化對清單中的項目重新排序的過程。
以上是SQL如何根據單一記錄變更高效更新多筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!