【问题标题】:in django how do I create a queryset to find double barrel names?在 django 中,我如何创建一个查询集来查找双桶名称?
【发布时间】:2010-07-24 10:33:55
【问题描述】:

在 django 中,我有一个人表,每个人都有一个 namefirst 和 namelast。

我想做sql:

select * from names where left(namefirst,1)=left(namelast,1).  

现在我最大的努力是

qs=People.objects.extra(select={'db':'select left(namefirst,1)=left(namelast,1)'})

但是如果我在上面粘贴一个 .filter(db=1) 就会产生错误。

我想我可以通过 db 订购然后将其切断,但我知道有更好的方法来做到这一点。

【问题讨论】:

    标签: python django django-models django-queryset


    【解决方案1】:

    您的 extra 参数看起来不正确。您应该使用where 参数(不是select):

    People.objects.extra(where=['left(namefirst,1)=left(namelast,1)'])
    

    【讨论】:

    • 是的,我试图选择该事物,然后对其进行过滤。我应该直接过滤它。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2017-07-22
    • 2015-12-14
    • 2014-05-31
    • 2016-02-21
    • 2012-02-10
    • 1970-01-01
    相关资源
    最近更新 更多