在参数化语句中选择其他行的列

时间:2014-11-01 22:43:22

标签: sql postgresql postgresql-9.3 parameterized-query

我是SQL的初学者,我在用户生成的数据中使用括号和星号这样的特殊字符时遇到了一些麻烦。到目前为止,我大多使用了大量的特殊方法来摆脱这些角色并且它们运行得很好。根据我所读到的内容,我认为参数化的查询可能是解决我遇到的一些问题的更系统的方法。

我有以下查询:

insert into midstep (street)(select street from addresses limit 10)

表格地址中的列街道有很多parantheses,asterisks等。上面的代码按预期工作。我想做的是这样的事情:

prepare midstreet (text) AS insert into midstep (street)(select $1 from addresses limit 10);
 execute midstreet ( street from addresses);

但是,当我输入该代码时,我收到以下错误消息:

ERROR: syntax error at or near "from"
SQL state: 42601
Character: 29

我尝试了很多关于此代码的变体,并阅读了PrepareExecute上的文档,但始终收到错误消息。任何帮助表示赞赏!

编辑:我忘了提,我正在使用postgresql 9.3,我的操作系统是Ubuntu。请询问您是否需要更多信息来帮助您!

1 个答案:

答案 0 :(得分:0)

在您的情况下,您不需要参数,因为您使用子查询获取值。事实上,您无法在服务器端知道所需的值。当且仅当您在应用程序级别定义了某些值并且想要将它们传递给数据库时,才需要这样的参数。