gpt4 book ai didi

sql - 错误 : bind message supplies 1 parameters, 但准备好的语句 ""需要 0

转载 作者:太空宇宙 更新时间:2023-11-03 22:45:48 27 4
gpt4 key购买 nike

我有一个表“article”,其中包含“content”列。我想查询 Postgresql 以搜索变量“temp”中包含的字符串。这个查询工作正常 -

pool.query("select * from article where upper(content) like upper('%some_value%')");

但是当我使用占位符 $1 和 [temp] 代替 some_value 时,我收到上述错误 -

pool.query("select * from article where upper(content) LIKE upper('%$1%')",[temp] );

注意 - 这里 $1 是一个占位符,应该替换为 [temp] 中的值,但我猜它会将 '%$1%' 视为字符串。如果没有引号 ' ' ,LIKE 运算符将不起作用。我也尝试过查询 -

pool.query("select * from article where upper(content) LIKE upper(concat('%',$1,'%'))",[temp] );

确保 $1 不被视为字符串文字,但它给出了错误 - 错误:无法确定参数 $1 的数据类型

最佳答案

pool.query(
"select * from article where upper(content) LIKE upper('%' || $1 || '%')",
[temp]
).then( res => {console.log(res)}, err => {console.error(err)})

这对我有用。我刚刚看了this Postgres doc page尝试理解 concat 对参数符号的作用。不能说我此时理解使用 || 运算符和使用 concat 字符串函数之间的区别。

关于sql - 错误 : bind message supplies 1 parameters, 但准备好的语句 ""需要 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45039760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com