【发布时间】:2016-12-21 10:07:50
【问题描述】:
我有一个这样的 sql 查询:
select *
from sys_user_promotion_record
where user_id=102 and concat(',' ,vendor_id, ',') like '%,1,%'
我怎样才能将该查询放入 django 查询集? 到目前为止,我设法制作了这个 django 查询集:
SysUserPromotionRecord.objects.filter(user_id=102, vendor_id__contains=','+'1'+',')
我怎样才能将concat(',' ,vendor_id, ',') 变成 django 查询集?
我避免在我的代码上使用原始 sql 查询。谢谢。
这是 vendor_id 值示例:
1,11,14
2,1,5
3,5,11
sql执行时,会出现第1行和第2行。
【问题讨论】:
-
你到底为什么要这样做? ` concat(',' ,vendor_id, ',') like '%,1,%'`
-
@e4c5 这有点难以解释。这个想法是将 1 与 11 或 12 或 13 等区分开来,所以我将 3,5,11 变为 ,3,5,11,所以当我查询 vendor_id like '%,1,%', vendor_id 3,5 时, 11 不会出现。
-
那么为什么不能只查询 1?你知道 1 和 11 是不同的 :)
-
@e4c5 例如??你能给我更简单的查询吗?我的 vendor_id 是一个字符串
-
你现在的问题实际上是“不清楚你在问什么”和“非 MVCE”类型闭包的好候选。你需要更好地解释你的问题。给你模型。例如
标签: mysql django select django-queryset concat