我有一个包含以下列的表account
:
id | integer
username | character varying(30)
data | jsonb
在data
列中,我将保存一组用户地址和位置。从表中选择位置的sql语句可以作为原始查询,但用pg或任何其他orm提供的准备好的格式尝试它对我来说都不起作用
查询格式为:pg.query("SELECT * FROM account where data->'addresses' @> '[{"location":"$1"}]'", ['Berlin'])
。
它抛出以下错误:
could not determine data type of parameter $1
我知道也可以使用原始查询,但我也在考虑的安全性
不能使用$1来插入SQL字符串的中间。在客户端中构建整个JSON,并将其作为一个单元传递给查询。