在某些情况下,我需要使用Django ORM进行通配符搜索。
我有一列-column1
,其中包含手机号码。
我需要对_
中的MySQL
中的单个字符替换进行通配符搜索。
我可以像Mobilenumbers.objects.raw('SELECT * FROM MOBILENUMBERS WHERE COLUMN1 LIKE '98765_7644')
那样做。但是我该如何在Django ORM中做同样的事情。
这不是Wildcard searching in Django的副本。
答案 0 :(得分:1)
您可以使用__regex
lookup [Django-doc],例如:
Mobilenumbers.objects.filter(
column1__regex=r'^98765.7644$'
)
您甚至可以进一步限制它,以仅允许数字作为通配符:
Mobilenumbers.objects.filter(
column1__regex=r'^98765\d7644$'
)
^
和$
分别是开始和结束锚,用于指定字符串以987...
开头和以...644
结尾
\d
仅匹配数字。因此,这意味着最后一个正则表达式将匹配9876547644
,但不匹配 。98765a7644