簡體   English   中英

Python SQLalchemy order_by 1.9 和 1.10 的順序是否正確?

[英]Python SQLalchemy order_by 1.9 and 1.10 in correct order?

我有一個列version_number類型TEXT的表。

值如下所示: 1.91.3 ,現在是1.10

問題是,如果我這樣做.order_by(desc("version_number"))結果是這樣排序的:

1.9
1.3
1.10 # this is handled like 1.1

我需要:

1.10
1.9
1.3

目前我不知道該怎么辦。 我不想更改列類型,甚至不知道它是否有幫助。 我也想保持良好的性能,因為我有 1k 行~用於 eahc 請求,必須訂購。

有任何想法嗎?

編輯

.order_by(desc(func.string_to_array(BuildItems.version_number, '.'))

不起作用。 1.10還在底部

您需要將text數組轉換為integer數組

from sqlalchemy import Integer, cast 
from sqlalchemy.dialects.postgresql import ARRAY

.order_by(desc(cast(func.string_to_array(BuildItems.version_number, '.'), ARRAY(Integer))))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM