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还没有配备这个功能。