gpt4 book ai didi

python - django 教程第 1 部分(p.choice_set.all() 以相反的顺序返回)

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:57 25 4
gpt4 key购买 nike

https://docs.djangoproject.com/en/1.5/intro/tutorial01/

我正在学习 Django 教程,在第 1 部分接近尾声时调用了 p.choice_set.all(),我以相反的顺序显示。

例如,我得到:只是再次黑客攻击,天空,不多而不是:不多,天空,只是再次黑客攻击

知道为什么我得到相反的顺序吗?我按照教程指示的顺序输入它。

我正在运行 PostgreSQL。

最佳答案

如果您没有明确执行 order_by(),则无法保证返回结果的顺序。

不确定 PostgreSQL,但对于 MySQL,在实践中,如果您仅根据某些索引列选择行的子集,它将按该索引排序,但如果您选择每一行,它'我们将使用表扫描并按照结果在磁盘上的存储顺序返回结果。

关于磁盘顺序,如果您曾经删除过一行,那么当您下次插入一行时它会尝试填充该行使用的空间,所以如果您有...

ID   Name
1 Bob
2 Fred
3 Jim

...然后删除第一行,然后添加新行,您会...

ID   Name
4 Jeff
2 Fred
3 Jim

...此时 SELECT * FROM my_table 将按 4、2、3 的顺序返回它们,而 SELECT * FROM my_table WHERE id > 1将(可能)以 2、3、4 的顺序返回它们。

关于python - django 教程第 1 部分(p.choice_set.all() 以相反的顺序返回),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17162076/

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