PostgreSQL检查Golang中的空数组更改行为

时间:2019-12-06 01:47:52

标签: sql postgresql go

我正在尝试实现基于输入数组选择数据的行为,或获取所有数据(如果array为null或为空)。

SELECT * FROM table_name
    WHERE 
        ('{}' = $1 OR col = ANY($1))

这将返回pq: op ANY/ALL (array) requires array on right side

如果我运行

SELECT * FROM table_name
    WHERE 
        (col = ANY($1))

这很好,我得到了我期望的内容。

我也可以使用array_length,但是它会要求我断言$ 1中的数据类型。如果我做(array_length($1::string[],1) < 1 OR col = ANY($1)),它似乎总是在array_length上返回false并继续进行col = ANY($1)

如何仅返回$ 1的值,或者如果$ 1是'{}'或NULL,则如何返回所有值?

1 个答案:

答案 0 :(得分:-1)

知道了

($1::string[] IS NULL OR event_id = ANY($1))

相关问题