【问题标题】:Q model and or query giving incorrect resultQ 模型和/或查询给出不正确的结果
【发布时间】:2021-06-16 01:40:07
【问题描述】:

我想使用 Q 模型执行下面的 SQL 查询

SELECT * FROM motor_vehicle_collision.collision_data_collisiondetails 其中(numberOfCyclistInjured > 0 或 numberOfCyclistKilled > 0)和 (经度!= '' 和纬度!= '');

为此我在查询下面写了

   query = Q(numberOfCyclistInjured__gt=0)
    query.add(Q(numberOfCyclistKilled__gt=0), Q.OR)
    query.add(~Q(latitude=''), Q.AND)
    query.add(~Q(longitude=''), Q.AND)

但我仍然得到纬度/经度为空的数据,我应该如何纠正它?

【问题讨论】:

    标签: django django-q


    【解决方案1】:

    您可以使用:

    query = (Q(numberOfCyclistInjured__gt=0) | Q(numberOfCyclistKilled__gt=0))
        & ~Q(longitude='')
        & ~Q(latitude=''))

    这也使您如何将条件绑定在一起更加明确。

    【讨论】:

    • 我认为 ~Q(longitude='') 之前应该有括号?
    • @LowCool:通常不会,因为~ 优先于&。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2015-01-07
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    相关资源
    最近更新 更多