本文介绍了Django使用自定义排序规则进行查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以使用与数据库表不同的排序规则进行查询?
Is it possible to make query with a collation different from database table have?
推荐答案
以下是如何使用指定排序规则,而不是给定表/列的默认排序规则。我假设您一直希望utf8_general_ci不区分大小写,但是您可以轻松地在代码中更改它或将其添加为变量。
Here is how you can use a specific collation instead of the default collation for a given table/column. I'm assuming you always want that to be the case insensitive utf8_general_ci, but you can easily change that in the code or add it as a variable.
请注意参数kwarg而不是db文字函数。参数存在的目的完全相同。
Note the use of the params kwarg instead of the db literal function. Params exists for the exact same purpose.
def iexact(**kw):
fields = [['%s=%%s collate utf8_general_ci'%field,value] for (field,value) in kw.items()]
return dict(where=[f[0] for f in fields], params=[f[1] for f in fields])
if User.objects.extra(**iexact(username='joeblow')).exists():
status = "Found a user with this username!"
这篇关于Django使用自定义排序规则进行查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!