PostgreSQL检查Golang中的空数组更改行为
我试图实现基于输入数组选择数据的行为,或者在数组为null或空时获取所有数据PostgreSQL检查Golang中的空数组更改行为,sql,postgresql,go,Sql,Postgresql,Go,我试图实现基于输入数组选择数据的行为,或者在数组为null或空时获取所有数据 SELECT * FROM table_name WHERE ('{}' = $1 OR col = ANY($1)) 这将返回pq:op ANY/ALL(数组)右侧需要数组 如果我跑 SELECT * FROM table_name WHERE (col = ANY($1)) 这很好,我得到了我期望的内容 我也可以使用array\u length,但它会要求我断
SELECT * FROM table_name
WHERE
('{}' = $1 OR col = ANY($1))
这将返回pq:op ANY/ALL(数组)右侧需要数组
如果我跑
SELECT * FROM table_name
WHERE
(col = ANY($1))
这很好,我得到了我期望的内容
我也可以使用array\u length
,但它会要求我断言$1中的数据类型。如果我执行(数组长度($1::string[],1)<1或col=ANY($1))
,它似乎总是在数组长度上返回false,然后继续执行col=ANY($1)
如果$1是'{}'
或NULL,我如何仅返回$1中的值或全部值?明白了:
($1::string[]为NULL或event_id=ANY($1))
您是否可以更新此答案,以便对具有相同或类似问题的其他用户有所帮助?e、 g.解释为什么这一改变解决了“明白”之外的问题?