我想查询一个值是否在数组中,但是数组长度不定,有没有什么方法查询?我看手册里边说 有一个扩展里边可以用  array *= value这样的方法来查询,但是现在postgresql里边没有这个扩展 怎么样安装? 最好是windows下和linux下都说一下,因为现在开发在windows下 服务器在linux下

解决方案 »

  1.   

    找到方法了 原来postgresql 8里边有 @> 操作符 
    arrayColumn @> cast(array[intnum] as smallint[]) 就ok了
      

  2.   

    还有一种简单的方法是用ANY运算符。
    value IN ANY (array) 或 value = ANY (array)如果value 在数组中,那么结果是 "true"。 如果没有找到真值结果(包括数组只有零元素的特例),那么结果是 "false"
      

  3.   

    刚才测试了一下,用"="可以,用"IN"不行。
    DEMO:
    select 'aa' = ANY(ARRAY['aa','bb','cc'])
    返回"t"
    select 'ab' = ANY(ARRAY['aa','bb','cc'])
    返回"f"