【发布时间】:2019-03-14 22:04:21
【问题描述】:
我一直在寻找一种使用 Django ORM 来使用 SQL 下划线通配符的方法,并做一些等效的事情:
SELECT * FROM table
WHERE field LIKE 'abc_wxyz'
目前,我正在做:
field_like = 'abc_wxyz'
result = MyClass.objects.extra(where=["field LIKE " + field_like])
我已经尝试过 contains() 和 icontains(),但这不是我需要的,因为它的作用是在查询中添加括号:
SELECT * FROM table
WHERE field LIKE '%abc/_wxyz%'
谢谢!
【问题讨论】:
-
在查询中添加括号是什么意思?一般来说,在 Django ORM 上,contains 相当于 '%abc%',startswith 相当于 'abc%',endswith 相当于 '%abc'
-
你说得对,我的意思是百分比字符
-
我没有注意到您查询中的“_”字符。您可以使用“__regex”来使用正则表达式进行过滤