包含 方法,但它意味着:WHERE field LIKE '%10%'
。我需要WHERE field LIKE '10__8__0__'
。
谢谢!
修改
我的意思是字符串是'10xx8xx0xx'
,其中x - 任何符号
答案 0 :(得分:15)
您可以使用django-like执行此操作:
MyModel.objects.filter(field__like='10%8%0%')
上创建了相关的故障单
答案 1 :(得分:5)
进行您打算进行搜索的最简单方法是使用正则表达式:
MyModel.objects.filter(field__regex=r'^10..8..0..$')
修改强>
我的解决方案可能比LIKE慢得多。但问题是django ORM不允许轻松访问LIKE
。如果startswith
或endswith
足以达到您的目的,那么这是最简单的。
答案 2 :(得分:5)
您可以使用extra
执行此操作:
MyModel.objects.extra(where=["column_name LIKE '%10%"])
请注意,column_name
是数据库中的列名,而不是Django模型中的字段名。在许多情况下,字段名称和列名称将相同,但如果它们不同,请注意使用列名称。
答案 3 :(得分:-1)
在SQL中,您可以像下面这样查询:
WHERE field LIKE '10??8??0??'
在Django过滤器中试试。