我在表格中有一列我使用以下参数查询:
表:
Id Billno. text[]
---------------------
1 4545
2 4545, 4546
当我查询4545
时,它必须返回两行。
我正在使用以下查询,但它只返回一行,即4545
pool.query(' SELECT "Billno" FROM "table" '+
' where "Billno" @> $1 ',[billNo])
billNo = [4545, 3456]
- >它可以是任何数组。但是,如果数据库中有任何数字,则必须将其返回
答案 0 :(得分:0)
尝试将参数显式转换为ARRAY数据类型:
pool.query(' SELECT "Billno" FROM "table" '+
' where "Billno" @> ARRAY[$1] ',[billNo])
http://www.sqlfiddle.com/#!17/701f7/4
此外,Billno
字段是字符串数组吗?如果要存储数值,为什么不使用整数数组?
<强>更新强>
如果要返回参数化数组值中包含任何值的所有数组,请尝试重叠(&amp;&amp;)运算符:
pool.query(' SELECT "Billno" FROM "table" '+
' where "Billno" && ARRAY[$1] ',[billNo])