【问题标题】:How to query the fields which contains comma seperated values in db?如何查询数据库中包含逗号分隔值的字段?
【发布时间】:2018-02-28 02:30:29
【问题描述】:

我有一个名为 Demo 的表格,它由两个字段组成,即;

姓名、爱好。爱好包含 db 中的逗号分隔值。

例如:“吃饭、睡觉、跳舞”

现在我要查询包含“吃,睡”的业余爱好。

我试过了

Demo.object.get(hobbies__in=['eating','sleeping'])

我来了

匹配的查询不存在

我该如何解决这个问题

【问题讨论】:

  • 这不是 IN 运算符在 SQL 中的工作方式
  • 你尝试用谷歌搜索错误吗?发生这种情况是因为您使用了get,而您的数据库中没有这样的对象。如果您不知道该对象存在的事实,您应该使用filter。另外,查询不正确。
  • 请展示你的deom模型,你能用commaseparatedintegerfield

标签: django


【解决方案1】:

除非你能保证两个值的顺序,否则你必须使用包含。这将转换为 LIKE '%eating%'LIKE '%sleeping%'

例子:

demos = Demo.object.filter(hobbies__contains='eating', hobbies__contains='sleeping')

【讨论】:

  • 我们可以让它动态化吗?
  • 当然,你也可以hobbies__contains=my_variable。你也可以在这里看到一个简单的例子:stackoverflow.com/a/13076894/921563如果你有问题,我建议你谷歌这个问题,如果你不能解决它,然后打开一个新问题。
猜你喜欢
  • 1970-01-01
  • 2010-10-18
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2015-07-08
  • 2011-11-14
  • 2013-06-07
  • 1970-01-01
相关资源
最近更新 更多