gpt4 book ai didi

python - SQLalchemy 不区分大小写的排序顺序

转载 作者:IT王子 更新时间:2023-10-29 06:22:15 27 4
gpt4 key购买 nike

您好,我正在尝试使用 sql alchemy 为 sqlite 数据库中的特定列实现升序排序,我遇到的问题是我要排序的列具有大写和小写数据,因此排序顺序没有正常工作。

然后我发现了 func.lower 并尝试将其合并到查询中,但它要么出错要么就是不起作用,有人可以给我一个工作示例,说明如何使用 sql alchemy 进行不区分大小写的升序排序.

下面是我目前所拥有的(抛出错误):-

session.query(ResultsDBHistory).order_by(func.lower(asc(history_sort_order_column))).all()

python 2.6.6SQL 炼金术 0.7.10

最佳答案

您需要反转函数的顺序:

session.query(ResultsDBHistory).order_by(asc(func.lower(history_sort_order_column))).all()

因此降低,然后声明升序。

或者,将排序规则更改为 NOCASE:

from sqlalchemy.sql import collate

session.query(ResultsDBHistory).order_by(asc(collate(history_sort_order_column, 'NOCASE'))).all()

无论如何,这可以说是一个更好的主意。

认为 ASC 是必需的,将其关闭会稍微简化您的代码:

from sqlalchemy.sql import collate

session.query(ResultsDBHistory).order_by(collate(history_sort_order_column, 'NOCASE')).all()

关于python - SQLalchemy 不区分大小写的排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17567201/

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