Rod*_*igo 13 sql postgresql parameters pgadmin
在pgadmin3中,我想使用参数化查询(为了更快的调试,只需从我的php文件中复制并粘贴查询).但是我还没有找到一个选项添加值$1
,$2
...参数.可能吗?
这是我在循环中构建的查询,遵循此处的 NULL测试建议:
SELECT EXISTS(SELECT 1
FROM tax
WHERE (addby=$1 or addby<>$1)
AND (adddate=$2 or adddate<>$2)
AND ($3 IS NULL AND nome IS NULL OR nome=$3)
AND ($4 IS NULL AND rank IS NULL OR rank=$4)
AND ($5 IS NULL AND pai IS NULL OR pai=$5)
AND ($6 IS NULL AND valido IS NULL OR valido=$6)
AND ($7 IS NULL AND sinonvalid IS NULL OR sinonvalid=$7)
AND ($8 IS NULL AND espec IS NULL OR espec=$8)
AND ($9 IS NULL AND public IS NULL OR public=$9)
);
Run Code Online (Sandbox Code Playgroud)
请注意,手动替换所有参数是单调乏味的,容易出错,并且可能(我希望)不必要.
提前致谢.
Gab*_*ger 15
我只知道两种方式.
首先是使用PREPARED STATEMENT
(PostgreSQL手册后的示例):
PREPARE usrrptplan (int) AS
SELECT * FROM users u, logs l
WHERE u.usrid=$1 AND u.usrid=l.usrid AND l.date = $2;
EXECUTE usrrptplan(1, current_date);
Run Code Online (Sandbox Code Playgroud)
PREPARE创建一个准备好的声明.执行PREPARE语句时,将解析,分析和重写指定的语句.随后发出EXECUTE命令时,将计划并执行准备好的语句.
预处理语句可以使用参数:在执行语句时替换为语句的值.创建预准备语句时,请使用$ 1,$ 2等按位置引用参数.
准备语句仅持续当前数据库会话的持续时间.会话结束时,忘记了准备好的语句,因此必须重新创建它才能再次使用.
二是"查找和替换" $1
,$2
通过正确的价值观,...等等.但你想避免这个.
The*_*der 12
在 DBeaver 中,您可以像在代码中一样在查询中使用参数,因此这将起作用:
select * from accounts where id = :accountId
Run Code Online (Sandbox Code Playgroud)
当您运行查询时,DBeaver 将询问您 :accountId 的值并运行查询。
归档时间: |
|
查看次数: |
11648 次 |
最近记录: |