gpt4 book ai didi

sql - 如何对sql数据库中的行重新排序

转载 作者:行者123 更新时间:2023-12-03 07:42:51 25 4
gpt4 key购买 nike

是否可以对 SQL 数据库中的行重新排序?例如;如何交换第二行和第三行值的顺序?

行的顺序对我来说很重要,因为我需要根据顺序显示值。

<小时/>

谢谢大家的回答。但“排序依据”对我不起作用。

例如,我在数据库中放入了书签列表。我想根据查询得到的结果进行显示。 (不按字母顺序排列)。就在它们插入时。

但是用户可以重新排列书签的位置(以他/她想要的任何方式)。所以我不能使用“order by”。

一个例子是书签在firefox中的书签中如何显示。用户可以轻松切换位置。我如何在数据库中提及这一点?

谢谢。

最佳答案

听起来您需要另一列,例如“ListOrder”。所以你的表格可能看起来像:

BookMark ListOrder
======== =========
d 1
g 2
b 3
f 4
a 5

然后您可以“按”ListOrder 进行“排序”。

Select * from MyTable Order By ListOrder

如果用户一次只能将书签移动一个位置,则可以使用整数作为 ListOrder,并交换它们。例如,如果用户想要将“f”向上移动一行:

Update MyTable
Set ListOrder=ListOrder+1
Where ListOrder=(Select ListOrder-1 From MyTable where BookMark='f')

Update MyTable
Set ListOrder=ListOrder-1
Where BookMark='f'

如果用户可以一次将书签向上或向下移动许多行,那么您需要对段重新排序。例如,如果用户想要将“f”移动到列表顶部,则需要:

if (increment) {
update MyTable
Set ListOrder=ListOrder-1
where ListOrder<=1 -- The New position
and ListOrder >(Select ListOrder from MyTable where BookMark='f')
} else {
update MyTable
Set ListOrder=ListOrder+1
where ListOrder>=1 -- The New position
and ListOrder <(Select ListOrder from MyTable where BookMark='f')
}

update MyTable
Set ListOrder=1 -- The New Position
Where Bookmark='f'

关于sql - 如何对sql数据库中的行重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/812630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com