You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询PostgreSQL中<@操作符的@作用及是否必要

关于WHERE子句中<@操作符的说明

首先要明确:这里的<@是一个整体操作符,不是<和@分开的——@不是单独的符号,不能单独拿掉。

这个是PostgreSQL数据库特有的语法,作用是判断左侧的数组/范围类型值是否被右侧的同类型值包含。举个例子:

  • 如果alias_1.value是数组[2,3],alias_2.value是数组[1,2,3,4],这个条件会返回true
  • 如果是范围类型,比如alias_1.value是[2023-01-01, 2023-01-10),alias_2.value是[2023-01-01, 2023-01-31),同样会返回true

至于要不要保留?必须保留!如果去掉@变成alias_1.value < alias_2.value,就变成了普通的“小于”比较,完全改变了原查询的逻辑,会导致结果彻底错误。

另外你提到alias_2.value是子查询的列,那这两个列的类型肯定是数组或者范围类型,这个操作符就是专门用来处理这类场景的包含判断的,是原代码逻辑的核心部分。

内容的提问来源于stack exchange,提问作者Chicken Sandwich No Pickles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 21:05:01