postgres ANY() 与 BETWEEN 条件

2024-02-14

如果有人想知道,我正在循环使用我自己回答的另一个问题,因为我意识到我的问题的根本原因与我想象的不同:

我的问题实际上看起来很简单,但我找不到方法。

如果数组的任何元素在两个值之间,如何查询 postgres?

该文档指出a BETWEEN b and c相当于a > b and a < c

然而,这不适用于数组,因为

ANY({1, 101}) BETWEEN 10 and 20必须false

while

ANY({1,101}) > 10 AND ANY({1,101}) < 20必须true.

{1,101} 表示包含两个元素 1 和 101 的数组。

我怎样才能解决这个问题,而不诉诸解决方法?

regards,

BillDoor

编辑:为了清楚起见:

我遇到的情况是,我通过 xpath() 查询 xml 文档,但对于这个问题,包含 int[] 类型数组的列可以完成这项工作。

id::int | numbers::int[]  | name::text
1       | {1,3,200}       | Alice
2       | {21,100}        | Bob

我想要所有的名字,其中有number那是之间20 and 30-所以我想要Bob

查询

SELECT name from table where  ANY(numbers) > 20 AND ANY(numbers) < 30

将返回Alice and Bob,显示 alice 有大于 20 的数字以及小于 30 的其他数字。

在这种情况下不允许使用 BETWEEN 语法,但是 Between 无论如何都只能在内部映射到 > 20 AND

引用关于 Between Operators 映射到 > 和 文档:

除了形式不同之外,两种形式之间没有区别 将第一个重写为第二个所需的 CPU 周期 内部。

PS.:

只是为了避免为此添加新问题:我该如何解决

id::int | numbers::int[]  | name::text
1       | {1,3,200}       | Alice
2       | {21,100}        | Alicia

SELECT id FROM table WHERE ANY(name) LIKE 'Alic%'
result: 1, 2

我只能找到将一个值与多个正则表达式匹配的示例,但无法将一个正则表达式与一组值匹配:/。除了显示的语法无效之外,ANY 必须是第二个操作数,但 LIKE 的第二个操作数必须是正则表达式。


 exists (select * from (select unnest(array[1,101]) x ) q1 where x between 10 and 20 ) 

您可以根据此查询创建一个函数

第二种方法:

 select  int4range(10,20,'[]') @> any(array[1, 101])

对于时间戳和日期,如下所示:

 select tsrange( '2015-01-01'::timestamp,'2015-05-01'::timestamp,'[]') @> any(array['2015-05-01', '2015-05-02']::timestamp[])

欲了解更多信息,请阅读:范围运算符 http://www.postgresql.org/docs/9.3/static/functions-range.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

postgres ANY() 与 BETWEEN 条件 的相关文章

  • Slick和bonecp:org.postgresql.util.PSQLException:FATAL:抱歉,太多客户端已经错误

    当我在本地开发应用程序时 我使用以下命令启动我的 play2 应用程序sbt run 我喜欢如何更改代码 然后重新加载浏览器以查看我的更改 在大约 10 次代码更改之后 我收到 postgresql 太多连接错误 见下文 我的数据库连接使用
  • 用数字 1-1000 填充 Postgres 数据库?

    我是 pgAdmin3 的新手 我想用数字 1 1000 填充 pgAdmin3 中的数据库 我该怎么做呢 目前 我创建了一个名为 MyDatabase 的数据库 其中没有任何内容 每行应与其数值相对应 第 1 行应包含 1 第 2 行应包
  • PostgreSQL:比较 json [重复]

    这个问题在这里已经有答案了 众所周知 目前 PostgreSQL 还没有方法来比较两个 json 值 比较就像json json不起作用 但是选角呢json to text before Then select x a y b json t
  • Postgres 平均值计算忽略 null

    这是我的 postgres 表 name revenue John 100 Will 100 Tom 100 Susan 100 Ben 5 rows 在这里 当我计算平均收入时 它返回 100 这显然不是这种情况 而总和 计数 即 400
  • 随机数据库与 AWS 中的 Django 和 Postgresql 断开连接

    我试图找出 Django 和数据库连接错误问题的根源 此时 我正在调试提示 因为我认为症状太不具体 一些背景 我一直在使用这个堆栈 在 AWS 中部署了很多年 没有出现任何问题 Ubuntu 在本例中为 20 04 LTS Nginx Uw
  • Ubuntu 12.04 上的 DeepDive 安装指南

    在拥有以后很多问题 https stackoverflow com questions 22469188 deepdive installation postgresql error安装深潜项目 http deepdive stanford
  • PostgreSQL round(v numeric, s int)

    Which method http en wikipedia org wiki Rounding Tie breakingPostgres 吗round v numeric s int http www postgresql org doc
  • Postgres < 9.0 的 DO 块相当于什么

    Postgres 8 4 8 相当于什么 DO BEGIN IF NOT EXISTS THEN EXECUTE END IF END create function f returns void as BEGIN IF NOT EXIST
  • 唯一约束与唯一索引?

    之间有区别吗 CREATE TABLE p product no integer name text UNIQUE price numeric and CREATE TABLE p product no integer name text
  • 如何创建不返回任何内容的函数

    我想写一个函数pl pgsql 我在用着Postgres 企业管理器 v3并使用 shell 来创建一个函数 但在 shell 中我必须定义返回类型 如果我不定义返回类型 我将无法创建函数 如何创建一个不返回结果的函数 即创建一个新表的函数
  • Postgres JSON 数据类型 Rails 查询

    我正在使用 Postgres 的 json 数据类型 但想要使用嵌套在 json 中的数据进行查询 排序 我想在 json 数据类型上使用 where 进行订购或查询 例如 我想查询关注者数量 gt 500 的用户 或者我想按关注者或关注数
  • pg_dump 与 pg_dumpall?使用哪一个来进行数据库备份?

    I tried pg dump然后在另一台机器上我尝试导入 sql 并填充数据库 我看到 CREATE TABLE ERROR role prod does not exist CREATE TABLE ERROR role prod do
  • 带有可变 WHERE 子句的批量 UPDATE 表

    我有一堆值对 foo1 bar1 foo2 bar2 我想做一堆更新 将 foo 列设置为 foo1 其中 bar 列为 bar1 我正在使用 psycopg2 在 Python 中执行此操作 我可以executemany与查询UPDATE
  • 在 Postgres 中存储加密数据 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要在 Postgres 中以加密形式存储某些数据 显然 我需要对其进行加密 存储 并且能够读取和解密 做这个的最好方式是什么 The bes
  • Postgres JSONB:数组数组的 where 子句

    postgres 中有 v 9 5 如果有的话 create table json test id varchar NOT NULL data jsonb NOT NULL PRIMARY KEY id 其中 data 是 json 并且包
  • 使用 PostGIS 拥有通用 GEOGRAPHY 列

    在 PostgreSQL 9 PostGIS 1 5 中 有没有办法创建 通用 GEOGRAPHY 列 我指的是接受 POINT 以及 POLYGON LINESTRING 等的列 到目前为止 我只在 Internet 上看到过像 GEOG
  • 如何加速spark df.write jdbc到postgres数据库?

    我是 Spark 新手 正在尝试使用 df write 加速将数据帧的内容 可以有 200k 到 2M 行 附加到 postgres 数据库 df write format jdbc options url psql url spark d
  • 如何在 PostgreSQL 中返回不同时区的当前日期

    我正在开发一个使用东部时间并将数据库设置为太平洋时间的应用程序 这已经引起了一些问题 但我们被告知不可能有其他方式 所以我们只能解决它 不管怎样 我遇到的麻烦之一就是获取今天的约会 由于数据库位于太平洋 如果我使用以下命令询问今天的日期cu
  • 将自动增量列添加到按日期排序的现有表中

    我在数据库中有一个名为 tickets 的现有表 其中包含以下列 id string Primary Key contains UUID like e6c49164 545a 43a1 845f 73c5163962f2 date bigi
  • 如何确定层级组织中的权限?

    我正在尝试创建高性能逻辑来确定分层组织内的权限 员工被分配到一个或多个单位 单元是分层的 理论上 无限深度 实际上不超过 6 层 例如 员工Jane可能是Supervisor of the Accounts Receivable单元 的子单

随机推荐

  • 未捕获的类型错误:THREE.MTLLoader 不是构造函数 2.0

    我之前在这里问过这个问题 未捕获的类型错误 THREE MTLLoader 不是构造函数 https stackoverflow com questions 46989337 uncaught typeerror three mtlload
  • cygwin 将文件权限设置为 000

    我有一个文件夹 cygwin d myfolder 每次我在那里保存文件时 如果我从 cygwin 执行 ls la 我会看到这些文件被授予权限 000 这实际上给我带来了很多问题 因为我将此文件夹同步到我的服务器 并且没有一个文件可访问
  • 如何在 ruby​​ 中控制(启动/终止)后台进程(服务器应用程序)

    我正在尝试通过 ruby 设置一个用于集成测试 实际上是规格 的服务器 但不知道如何控制该过程 所以 我想做的是 为我的 gem 运行一个 rake 任务来执行集成规范 该任务需要首先启动服务器 我使用 webrick 然后运行规范 执行规
  • 使用 nginx/php-fpm 设置 $_ENV (fka $HTTP_ENV_VARS)

    apache 环境中 setenv 的等效项是什么 使用 apache 我可以设置环境 SOMEE NV 并通过 ENV SOMEE NV 在 php 中访问它 但我不知道如何使用 nginx php fpm 来做到这一点 我最初以为我只需
  • printf() 和 scanf() 函数何时静态或动态链接到应用程序?

    当一个C程序被编译时 它按照预处理器 编译器 汇编器 链接器的顺序进行 主要任务之一是linker是使库函数的代码可供您的程序使用 链接器可以以静态或动态两种方式链接它们 stdio h仅包含声明 其中不存在定义 我们只包括stdio h在
  • 自记录 Perl 模块(不含 Moose)

    我有同样的问题HERE https stackoverflow com questions 3018528 making self logging modules with loglog4perl但不幸的是我无法安装 Moose 我认为那里
  • 如何在 Pharo/Squeak 中从 WindowsProcess 的 stdin 读取并写入 stdout?

    我找到了一种运行命令的方法Windows 10异步 现在我尝试通过它的标准输入 标准输出与它进行通信 我是通过 Python 完成的 我运行了 python exe 进程 向其发送了一个类似 print 1 9 的字符串 并得到了结果 10
  • 更改 php.ini 文件后是否需要重新启动 Apache?

    如果我对 php ini 文件中的设置进行更改 是否需要重新启动 Apache 才能使其生效 实际上取决于情况 取决于您如何在该网络服务器中使用 php 在http服务器中使用php作为模块 你必须重新启动http服务器进程 使用 php
  • 雷克流产了!没有要加载的文件 --bundler/setup Rails 3.1

    我对 Rails 很陌生 在我创建了一个新的 Rails 项目之后 rails new test project I ran rake db create 为了创建数据库 发现如下错误信息 rake aborted no such file
  • Hyperledger Fabric 和 Hyperledger Indy 之间的跨账本通信

    hyperledger Fabric 和 indy 之间是否可以进行跨账本身份管理 Hyperledger Fabric 和 Hyperledger Indy 之间是否可以进行通信 我可以从 Fabric 读取数据并将其存储在 Indy 中
  • Java Swing MVC 架构

    Java Swing 应用程序如何组织以实现 MVC 架构 See Swing 架构概述 http www oracle com technetwork java architecture 142923 html
  • 在共享主机上使用 bitbucket 管道进行 ssh 时找不到 npm 命令

    我已经按照描述安装了nodejshere https www a2hosting com kb installable applications manual installations installing node js on mana
  • 写入和读取的持久内存缓存策略

    有谁知道尝试使用的任何缺点英特尔傲腾 DC 内存 https itpeernetwork intel com intel optane dc persistent memory operating modes gs pu5agg DCPMM
  • Python SerialException:设备报告已准备好读取但未返回任何数据

    我正在使用 Arduino Nano 以前是 UNO 从传感器收集数据 然后通过供电集线器通过 USB 连接将数据发送回运行 Jessie 4 1 19 2016 年 3 月 15 日和 Python 2 7 的 Raspberry Pi
  • Google C# 客户端库获取刷新令牌

    这是我之前在库的帮助下编写的代码 UserCredential credential GoogleWebAuthorizationBroker AuthorizeAsync GoogleClientSecrets Load stream S
  • 如何使用Stack在另一个项目中导入个人库?

    所以我有一个个人堆栈库 我们称之为Foo In Foo 我有一个FooModule模块文件名为FooModule hs 我有另一个堆栈项目称为Bar 我如何导入FooModule hs模块到项目Bar 我一直这样做 在你的stack yam
  • 使用 D3.js 进行分页

    我正在使用 D3 条形图 API 中的大量 JSON 数据 我想一次只显示 10 20 个柱 有没有办法使用 D3 进行分页 或者我需要以另一种方式 php 进行分页 欢迎任何最佳实践或建议 我知道这是一个迟到的问题 但也许这仍然可以帮助你
  • 如何创建新的微软组织?

    我对 MS 世界完全陌生 并尝试在我的个人帐户下访问 API 然而这个API说它只能使用以下方式访问Delegated work or school account 任何人都可以解释如何设置新的组织帐户 考虑到我们还没有组织 使用哪个 ms
  • Amazon EC2 Ubuntu 实例最大文件上传大小

    我获得了一个 Amazon EC2 Ubuntu 实例 我们的任务是创建一个 Web 应用程序 其中包括上传客户端视频 我在本地主机中创建了一个文件上传应用程序 它工作正常 当我将代码迁移到虚拟主机服务器时 我无法上传任何视频 甚至无法上传
  • postgres ANY() 与 BETWEEN 条件

    如果有人想知道 我正在循环使用我自己回答的另一个问题 因为我意识到我的问题的根本原因与我想象的不同 我的问题实际上看起来很简单 但我找不到方法 如果数组的任何元素在两个值之间 如何查询 postgres 该文档指出a BETWEEN b a