Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用_icontains和将查询小写有什么区别?_Python 3.x_Django_Django Queryset - Fatal编程技术网

Python 3.x 使用_icontains和将查询小写有什么区别?

Python 3.x 使用_icontains和将查询小写有什么区别?,python-3.x,django,django-queryset,Python 3.x,Django,Django Queryset,如果我在使用\uuuu contains或直接使用\uu icontains之前降低查询的大小写,性能是否有任何差异。代码: 这个 def search(request): query = (request.GET.get("q")).lower() if query: users = User.objects.filter(location__contains=query) VS def search(request): query

如果我在使用
\uuuu contains
或直接使用
\uu icontains
之前降低查询的大小写,性能是否有任何差异。代码:

这个

def search(request):
    query = (request.GET.get("q")).lower()
    if query:
        users = User.objects.filter(location__contains=query)
VS

def search(request):
    query = request.GET.get("q")
    if query:
        users = User.objects.filter(location__icontains=query)
在将
位置插入数据库时,我将其小写。查询是在任何情况下都可以进行的查询

请随便问

通常,不区分大小写搜索(或
类似
操作)是通过将LHS和RHS转换为相同的大小写来执行的,可以是小写,也可以是大写

像这样的,

SELECT *
FROM YourTable
WHERE UPPER(YourColumn) = UPPER('VALUE')
选择*
从你的桌子上
其中UPPER(YourColumn)=UPPER('VALUE')
如果您确定数据库列
位置
仅包含小写字符,第一个选项更好


注意:在小型数据库(10k条目)中,您可能看不到任何性能差异,但在较大的数据库中,您会看到性能差异。

您能否为我提供更好的搜索性能参考。我的意思是,如果我搜索kerla,这将不会给出任何结果。我想让它知道
喀拉拉邦
,或者问你的意思是
喀拉拉邦
。例如,我使用了那个位置,让它更简单。现在你问的是模糊搜索,我不认为流行的DBs还没有配备这个功能。