Asw*_*esh 88 python sql django django-models django-queryset
django中这个SQL语句的等价物是什么?
SELECT * FROM table_name WHERE string LIKE pattern;
Run Code Online (Sandbox Code Playgroud)
我如何在django中实现这个?我试过了
result = table.objects.filter( pattern in string )
Run Code Online (Sandbox Code Playgroud)
但那没用.我该如何实现?
fal*_*tru 177
result = table.objects.filter(string__contains='pattern')
Run Code Online (Sandbox Code Playgroud)
小智 27
包含和falsetrue提到的icontains使查询像 SELECT ... WHERE headline LIKE '%pattern%
与它们一起,您可能需要具有相似行为的这些行为: startswith,istartswith,endswith,iendswith
制造
SELECT ... WHERE headline LIKE 'pattern%
要么
SELECT ... WHERE headline LIKE '%pattern
Pet*_*uhý 20
这可以通过Django 的自定义查找来完成。我已经将查找变成了一个类似 Django 的查找应用程序。安装后,将启用__like
使用%
和_
通配符进行查找。
应用程序中所有必要的代码是:
from django.db.models import Lookup
from django.db.models.fields import Field
@Field.register_lookup
class Like(Lookup):
lookup_name = 'like'
def as_sql(self, compiler, connection):
lhs, lhs_params = self.process_lhs(compiler, connection)
rhs, rhs_params = self.process_rhs(compiler, connection)
params = lhs_params + rhs_params
return '%s LIKE %s' % (lhs, rhs), params
Run Code Online (Sandbox Code Playgroud)
result = table.objects.filter(string__icontains='pattern')
Run Code Online (Sandbox Code Playgroud)
不区分大小写搜索字段中的字符串.
归档时间: |
|
查看次数: |
69838 次 |
最近记录: |