2024-04-19 12:39:56 发布
网友
以下排序区分大小写:
MyModel.select().order_by(MyModel.name) <class '__main__.MyModel'> SELECT t1."id", t1."name" FROM "mymodel" AS t1 ORDER BY t1."name" []
如何添加NOCASE使其不区分大小写?在
NOCASE
或者有没有其他方法使它不区分大小写?在
我在documentation上找不到关于它的任何信息。在
您可以使用SQL函数(带^{} helper)将模型名称小写:
MyModel.select().order_by(fn.Lower(MyModel.name))
对于SQLite,您还应该能够使用custom collation:
^{} subclass提供的@db.collation()修饰符允许您注册自定义排序规则函数,然后使用该函数进行排序:
@db.collation()
MyModel.select().order_by(collate_case_insensitive.collation(MyModel.name))
当然,SQLite已经有一个内置的^{} collation,应该在这里使用它,但是要在上面使用它,必须构建一个^{} object来包含原始SQL:
MyModel.select().order_by(Clause(MyModel.name, SQL('collate NOCASE')))
这反映了SQLAlchemy中不区分大小写的排序方式:SQL alchemy case insensitive sort order
您可以使用SQL函数(带^{} helper )将模型名称小写:
对于SQLite,您还应该能够使用custom collation:
^{pr2}$^{} subclass 提供的
@db.collation()
修饰符允许您注册自定义排序规则函数,然后使用该函数进行排序:当然,SQLite已经有一个内置的^{} collation ,应该在这里使用它,但是要在上面使用它,必须构建一个^{} object 来包含原始SQL:
这反映了SQLAlchemy中不区分大小写的排序方式:SQL alchemy case insensitive sort order
相关问题 更多 >
编程相关推荐