我有一个小疑问,如何管理以下情况.在数据库表中,我将相关数据保存在不同的列中,最后我将精确的顺序保存在名为position的列中.此表绑定到网格.现在我正在实现将更改行的位置的功能,但我还需要更新数据库.我问的是什么是最佳实践或最方便的方法来实现这一目标?
建议是值得欢迎的.
例
姓名职位
abc 1
def 2
ghj 3
现在我点击按钮,我得到以下内容
姓名职位
def 1
abc 2
ghj 3
我希望我已经解释过了自己!
根据评论,这是一个真实的例子:
具有3列ID1,ID2,POSITION
ID1和ID2的TABLE1 是FK,并且该表具有基于ID1和ID2的PK
当我选择要显示的数据时,我使用以下查询SELECT NAME,ETC FROM TABLE2 INNER JOIN TABLE1 ON ID1 = ID1 ID2 = 511按位置排序现在我需要改变位置上的两个元素,因此该行中TABLE1例如311,511,5需要成为311,511,4,那是433,511,4需要该行成为433,511,5.相反的.
我希望这有助于澄清我的问题.
干杯!
当你说:"将位置更改为行"时,是指在表格中上下移动行(相对于position排序)?
如果是这样,要将行向上移动,您需要position与前一行交换.要将其向下移动,您需要对下一行执行相同操作.根据您的特定SQL方言,从不同行交换值的语法可能类似于:
UPDATE YOUR_TABLE
SET position =
CASE position
WHEN 2 THEN 3
WHEN 3 THEN 2
END
WHERE position IN (2, 3)
Run Code Online (Sandbox Code Playgroud)
此示例向上移动第3行,向下移动第2行.根据您的需要更换2和3 ......
顺便说一下,即使存在UNIQUE约束position(在Oracle下确认),这也应该有效.
有关更多想法,您可以查看此问题.
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |