表中有一些项目,希望用户可以自己定义这些项目的种类。
因此,我在表中添加了\n
字段,表可能是
str.split()
然后,我使用以下代码显示按使用定义的项目排序。
import json
json.loads('[[0,1,0],[0,0,0]]')
结果将是
sortValue (Int )
我发现很难通过数据结构来更改这些项目的顺序。
例如:
我希望记录name sortValue
Jack 3
Paul 1
April 30
Alic 25
位于第二位置。我必须将记录更新为Select name, sortValue from myTable order by sortValue
。
结果将是
name sortValue
Paul 1
Jack 3
Alic 25
April 30
如果下次我需要记录(name=Alic, sortValue=25)
在第二个位置时,我发现该记录没有sortValue!
答案 0 :(得分:2)
您可以在sortValue
列中使用浮点类型,因此您将始终有一个空格可以在其他两个之间插入新值。
# if record is between others
sortValue = (prevSortValue + nextSortValue)/2
# if record is last
sortValue = prevSortValue + 1
理论上,当您用完浮点精度时,可能会遇到与整数相同的问题。但实际上,这很大程度上取决于您在其他记录之间插入记录的频率。尤其是当您在同一条记录附近有很多插入内容时。
更新现有记录以将新记录放置在正确的位置似乎效率很低,因为update
的操作比insert
昂贵得多,并且需要锁定记录,而您不必修改。< / p>