【问题标题】:PostgreSQL select record with multiple conditionPostgreSQL选择具有多个条件的记录
【发布时间】:2021-08-23 18:21:36
【问题描述】:

我正在尝试选择记录,但没有得到我想要的记录。这是我的 sqlfiddle http://sqlfiddle.com/#!17/5296a/1

所以当我使用以下查询选择记录时

select title from post where (id>3 and author_id=3) or id>3 limit 1

它给了我标题DDDDD 的结果。它应该给我GGGGGGGG

我想检查是否有任何记录 author_id=3 并且大于帖子 id=3 如果没有,那么只需获取大于 3 的任何帖子 id。

我不确定我在这里缺少什么。

【问题讨论】:

    标签: sql postgresql select where-clause


    【解决方案1】:

    我想检查是否存在 author_id=3 且大于帖子 id=3 的记录,如果没有,则获取大于 3 的任何帖子 id。

    根据你的描述,你想要:

    select title
    from post 
    where id > 3
    order by (author_id = 3) desc
    limit 1;
    

    Here 是一个 dbfiddle。这会过滤所有行,因此只有id > 3order by 将任何带有 author_id = 3 的行放在首位,因此 limit 将返回该行。

    您的版本只返回与where 条件匹配的任意行——并且该条件等同于where id > 3where 条件不提供任何类型的“偏好”。他们只是指定给定的行是否在结果集中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      相关资源
      最近更新 更多