MYSQL通过按钮排列/重组数据库

时间:2016-08-25 07:02:33

标签: javascript mysql

有没有办法通过按钮/ javascript安排数据库中的项目顺序?

即。我在我的数据库中有第一个表,我希望能够自由地安排它。

| id | name |   change to   | id | name |
-------------     ---->     -------------
| 1  | Iris |               | 1  | Lens |
| 2  | Pupil|               | 2  | Iris |
| 3  | Lens |               | 3  | Pupil|

如何使用箭头向上/向下按钮移动它们? 提前致谢

1 个答案:

答案 0 :(得分:0)

根据评论:

我建议你去阅读SQL的基础知识,尝试编写一些代码来解决你的问题,然后提出一个更具体的问题。我们不能在这里的单个问题中教你SQL。

这里有一个线索:对于你想要在改变序列号方面做什么,UPDATE语句将是你想要的。单个语句可以同时对多行进行操作。所以如果你将一个项目(项目A)从位置10移动到位置2,你可以执行以下步骤:

  • 将项目A的序列号更新为2
  • 更新序列号在2到9之间的所有项目(不包括项目A,其序列现在为2),这样您就可以将每个项目的序列号增加1。

您可以使用2个SQL UPDATE语句执行此操作,每个语句对应上述每个语句。可能他们看起来像这样:

UPDATE MyTable 
SET Sequence = 2 
WHERE ItemID = 'A'

UPDATE MyTable 
SET Sequence = Sequence + 1 
WHERE ItemID <> 'A' AND Sequence >=2 AND Sequence <= 9

如果要在一次调用数据库时更新多个项目的顺序,请查看事务,这可以确保应用所有语句,或者如果出现错误则全部回滚,以确保数据的一致性。

请注意,序列号与唯一标识行的ID不同(并且永远不应更改)。您需要将此额外列添加到表中。在上面的示例中,我使用ItemID作为字符串作为标识符,以避免与整数序列号混淆,但实际上您的标识符可能是某种数字或GUID。

最后,为了按顺序排列您的项目,您可以运行以下查询:

SELECT *
FROM MyTable
ORDER BY Sequence ASC