0

根据文档,“包含”字段查找区分大小写,“图标包含”不区分大小写,但在查询时我看不到任何区别。

>>> from users.models import SnetUser
>>> SnetUser.objects.get(email__contains='Satti')
<SnetUser: satti>
>>> SnetUser.objects.get(email__contains='satti')
<SnetUser: satti>
>>> obj = SnetUser.objects.get(email__contains='satti')
>>> obj.email
'satti@gmail.com'

两者结果相同。

注意:我在本地使用 django 的 SQLite DB

4

1 回答 1

1

这个案例写在docs中。

contains字段查找正在转换为LIKE子句,在 SQLite 中它是不区分大小写的

如果您想让LIKE子句区分大小写,您需要使用以下内容PRAGMA

PRAGMA case_sensitive_like = true;

>>> from django.db import connection

>>> with connection.cursor() as cursor:
...     cursor.execute('PRAGMA case_sensitive_like = true;')

>>> SnetUser.objects.get(email__contains='Satti')
<QuerySet []>
于 2020-05-13T09:37:35.427 回答