首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表的变更顺序

表的变更顺序
EN

Database Administration用户
提问于 2022-12-23 00:34:39
回答 1查看 84关注 0票数 0

我有一张简单的桌子,上面有一家餐厅可以在菜单上列出的特定类别(例如:开胃菜、饮料、主菜、沙漠、.)

Menu_restaurant_category的示例数据:

代码语言:javascript
运行
复制
+----+------------+-------------+----------+
| ID | restaurant | category    | sequence |
+----+------------+-------------+----------+
| 11 |         35 | MAIN COURSE |        1 |
| 12 |         35 | DESERTS     |        2 |
| 13 |         35 | DRINKS      |        3 |
| 14 |         35 | APPETIZERS  |        4 |
+----+------------+-------------+----------+

我想让管理员选择类别将显示在菜单上的顺序。首先显示列sequence中数字最高的行。

现在:假设我点击ID 11的向上按钮,ID 11应该得到序列2,ID 12应该得到序列1。相反的情况应该发生在按下按钮时。

在SQL中,我将如何做到这一点?

  • 不知怎么的,我需要把下面的一行列在订单上。
  • 并在这两行之间交换序列列的值。
EN

回答 1

Database Administration用户

发布于 2022-12-25 17:31:59

对序列值使用步骤10。它允许在任意两个项之间插入值。

重新排序后重新计算序列。

将其全部包装在存储的例程中。

代码语言:javascript
运行
复制
 UPDATE menu_restaurant_category  
    SET sequence = sequence + 10 + 1 -- one row down and a bit more
  WHERE ID = xxxxx;                  -- SP parameter 

 UPDATE menu_restaurant_category  
    SET sequence = @seq := @seq + 10 -- UDV counter
  WHERE (@seq := 0) = 0              -- UDV initialization
  ORDER BY sequence ASC;
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/321353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档