PostgreSQL 的@>与<@运算符

发布时间 2023-09-11 10:28:23作者: 槑孒

用于执行范围包含的比较操作。具体来说,它用于检查一个范围是否包含另一个范围。这个运算符的使用通常涉及到范围数据类型,例如 int4range(整数范围)或 tsrange(时间戳范围)等。

<@@> 这两个运算符之间的区别:

  1. <@ 运算符:这个运算符用于检查一个范围是否包含某个元素。

    • 语法:range1 <@ element
    • 结果:如果 element 包含在 range1 中,则返回 true;否则返回 false

    示例:

    • 如果 int4range(2, 6) 包含整数 4,则表达式 int4range(2, 6) <@ 4 返回 true
  2. @> 运算符:这个运算符用于检查一个范围是否被另一个范围包含。

    • 语法:range1 @> range2
    • 结果:如果 range1 包含了 range2,则返回 true;否则返回 false

    示例:

    • 如果 int4range(2, 6) 包含范围 int4range(3, 5),则表达式 int4range(2, 6) @> int4range(3, 5) 返回 true

总之,<@@> 运算符用于不同类型的比较:

  • <@ 用于元素与范围的比较,检查一个元素是否在范围内。
  • @> 用于范围与范围的比较,检查一个范围是否包含另一个范围。

它们之间的区别是比较的对象不同,因此在使用时要根据具体的需求选择正确的运算符。