处理行位置的最佳实践

时间:2016-06-27 16:47:07

标签: mysql sql database

移动行的最佳做法是什么?这样您可能想要更改项目的顺序。现在,如果您创建一个名为order_id的新列或其他内容,如果删除或选择行,则不会失败。

我猜测的另一种方法是只使用主ID完全切换值,因此只更改ID以外的值。但我不知道人们通常使用什么。有这么多网站让你能够改变事物的顺序。所以他们这样做了吗?

1 个答案:

答案 0 :(得分:-1)

每个返回可见结果集的SQL语句都应包含ORDER BY子句,以便结果一致。标准不保证特定表中的行顺序将保持不变或一致,即使表中没有明显的变化。

您用于ORDER BY子句的内容取决于用例。日期值是评论主题或博客条目排序的通常选择。但是,如果您希望用户能够自定义结果集显示的顺序,则必须提供表示行位置的列,并在用户对其进行更改时调整该列的值。他们看到了。

例如,如果您确定该列将包含一个序列号,从第一行开始为1,第二行开始为2,等等,那么您可以删除需要删除的行而不必删除做更新。但是,如果插入一行,则需要为插入的行添加适合其位置的序号,并使用新位置更新其下的所有行。如果您将行从其他位置移动到新位置,也是如此;需要使用新的位置索引更新新旧位置之间的行。