我注意到 Python sqlite fetchall() 和 fetchmany() 语句以排序键顺序而不是原始键顺序返回结果。例如,考虑:
list_indexes = [9, 5, 2, 8, 3, 7]
indexsize = len(list_indexes)
cursor.arraysize = indexsize
cursor.execute("select index, details from this_table where index in (%s)" % ','.join('?' * len(list_indexes)), list_indexes)
rows = cursor.fetchmany(indexsize)
返回的行顺序是按排序的键顺序 [2, 3, 5, 7, 8, 9]。
我错过了什么还是这是默认行为?如果是这样,除了按参数索引重新排序行的明显方法之外,是否还有其他解决方法?