我有一个案例,我需要使用 Django ORM 进行通配符搜索。
我有一列 - column1
,其中包含手机号码。
我需要对单个字符替换进行通配符搜索,即 MySQL
中的 _
。
我可以像 Mobilenumbers.objects.raw('SELECT * FROM MOBILENUMBERS WHERE COLUMN1 LIKE '98765_7644')
那样执行此操作。但是我如何在 Django ORM 中做同样的事情。
这不是 Wildcard searching in Django 的重复项.
最佳答案
您可以使用__regex
lookup [Django-doc] ,例如:
Mobilenumbers.objects.filter(
<b>column1__regex=r'^98765.7644$'</b>
)
您甚至可以进一步限制它,只允许数字作为通配符:
Mobilenumbers.objects.filter(
column1__regex=r'^98765<b>\d</b>7644$'
)
^
和 $
分别是开始和结束 anchor ,用于指定字符串以 987...
,并以 ...644
结尾。
\d
仅匹配数字。因此,这意味着最后一个正则表达式将匹配 9876547644
,但不匹配 。98765a7644
关于python - 如何在 Django ORM 中进行通配符搜索以替换单个字符 (_)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56966762/