arrays - 搜索 PostgreSQL 数组列
问题描述
我正在尝试使用 PostgreSQL 数组。我添加了一个专栏:
dates date[]
其中包含日期数组。我想选择在一个范围内至少有一个日期的行。
我发现唯一可行的解决方案是:
SELECT *
FROM archive
WHERE '2021-07-01' <= ANY(dates) AND '2021-09-30' >= ANY(dates);
在我看来,这看起来不自然。我通常会将目标值放在比较运算符之后。
我更喜欢这样的东西:
SELECT *
FROM archive
WHERE ANY(dates) BETWEEN '2021-07-01' AND '2021-09-30';
但这不起作用。
是否有其他方法可以进行此搜索?
解决方案
你可以使用这个WHERE
条件:
WHERE daterange('2021-07-01', '2021-09-30', '[]') @> ANY (dates)
这将测试区间是否包含任何dates
.
解释一些伏都教可能会有所帮助:
推荐阅读
- twilio - 如何在 Twilio Studio“设置变量”小部件中使用 Liquid 模板语言
- c# - 在 Visual Studio 中将 .net 核心应用程序部署到 linux?
- javascript - 如何在阅读 TTS 消息后添加页面刷新功能
- reactjs - CSS 推送到网站时不显示,但在我的 Mac 上的 ReactJS 中以开发模式显示
- google-apps-script - 为什么无法在域外获取当前电子邮件?
- python - 在 LSTM 上使用调节器时,损失返回 NaN
- python - 从 WEB API 远程访问打印
- angular - 是否可以只使用“npm start”来运行 angular、flask 和 mongodb
- javascript - 为什么调用我的函数后我的数组中有一个未定义的?
- c - __atomic_load_n 和 __atomic_load 之间的区别