1

我正在尝试使用 aclitem 进行 like/~ 操作并且遇到问题。我无法将此类型转换为 text 或 varchar 类型,因此无法使用 like 或 ~ 运算符。我在使用 cstring 类型时遇到了同样的问题。我的猜测是,这是以某种方式枚举的,但我似乎找不到关键。有任何想法吗?

这是我想运行的查询类型:

select
   case when relacl[1] ~ '%searchstring%' then 1 else 0 end as temp1,
   case when relacl[1] like '%searchstring%' then 1 else 0 end as temp2,
   case when aclitemout(relacl[1]) ~ '%searchstring%' then 1 else 0 end as temp3,
   case when aclitemout(relacl[1]) like '%searchstring%' then 1 else 0 end as temp4,
   relacl[1]::text as temp5,
   relacl[1]::varchar as temp6,
   aclitemout(relacl[1])::text as temp7,
   aclitemout(relacl[1])::varchar as temp8
from
   pg_class c
;
4

1 回答 1

2

relacl 是一种数组类型,因此您可以使用 array_to_string(array(relacl)) 将其转换为可搜索的字符串。

于 2014-01-17T04:05:19.470 回答