SQL 中根据单条记录更改修改多条记录
问题:
如何更新多条记录的位置
解决方案:
要解决此问题,可能需要一个修改多条记录的复杂查询。但是,通过对数据结构进行简单调整,我们可以简化流程,并通过仅修改所需记录的单个查询来完成。
在提供的示例中,表包含一个“位置”字段对由“ListID”标识的列表内的项目进行排序。移动一个项目(例如,“Pears”到“Chips”之前)涉及将其位置设置到所需位置并调整其间所有项目的位置。
我们的目标是实现单个查询而不依赖于额外的处理或多个查询。
随后,我们可以使用以下查询:
<code class="sql">UPDATE my_table SET position = 15 WHERE listId=1 AND name = 'Pears';</code>
假设,将来由于重复重新排序,项目之间出现间隙。为了解决这个问题,我们可以定期执行以下查询:
<code class="sql">UPDATE my_table SET position = position * 10;</code>
通过将位置值乘以 10,我们引入足够的间隙来适应未来的调整,而不会丢失排序信息。
以上是如何在 SQL 中基于单条记录更改更新多条记录?的详细内容。更多信息请关注PHP中文网其他相关文章!