You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Django查询以筛选包含独立值1.2.3的记录?

解决方案

要筛选出Col2中包含独立值"1.2.3"的记录,需要用正则匹配精准定位完整元素,避免匹配带前后缀的情况。可以通过Django的Q对象结合regex查询条件实现,覆盖以下四种场景:

  • 字段值就是纯"1.2.3"
  • "1.2.3"位于逗号分隔列表的开头(后跟逗号)
  • "1.2.3"位于逗号分隔列表的结尾(前跟逗号)
  • "1.2.3"位于逗号分隔列表的中间(前后均有逗号)

具体代码如下:

from django.db.models import Q

# 构建匹配条件
matches = Q(col2__regex=r'^1\.2\.3$') | \
          Q(col2__regex=r'^1\.2\.3,') | \
          Q(col2__regex=r',1\.2\.3$') | \
          Q(col2__regex=r',1\.2\.3,')

# 执行查询
valid_records = TableName.objects.filter(matches)

代码说明

  • ^1\.2\.3$:匹配字段值恰好是"1.2.3"的情况(^表示字符串开头,$表示字符串结尾)
  • ^1\.2\.3,:匹配以"1.2.3,"开头的字段值,即"1.2.3"是列表第一个元素
  • ,1\.2\.3$:匹配以",1.2.3"结尾的字段值,即"1.2.3"是列表最后一个元素
  • ,1\.2\.3,:匹配中间包含",1.2.3,"的字段值,即"1.2.3"是列表中间的元素

执行该查询后,会返回你期望的sahil3、sahil4、sahil6三条记录,自动排除带前后缀的sahil1、sahil2、sahil5。

内容的提问来源于stack exchange,提问作者SAGY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 14:03:12