当前位置: 首页 > 面试题库 >

如何将参数值添加到pgadmin sql查询中?

胡彭亮
2023-03-14
问题内容

在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)
       );

请注意,手动替换所有参数很繁琐,容易出错,并且可能(我希望)是不必要的。

提前致谢。


问题答案:

我只知道两种方式。

首先是要使用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);

PREPARE创建一个准备好的语句。当执行PREPARE语句时,将分析,分析和重写指定的语句。随后发出EXECUTE命令时,将计划并执行准备好的语句。

预备语句可以采用参数:执行语句时将替换为语句的值。创建准备好的语句时,请使用$ 1,$ 2等按位置引用参数。

准备的语句仅在当前数据库会话期间持续。会话结束时,准备好的语句将被遗忘,因此必须在重新使用它之前重新创建它。

二是“查找和替换” $1$2..等通过适当的值。但是您要避免这一点。



 类似资料:
  • 问题内容: 使用Apache的commons-httpclient for Java,向GetMethod实例添加查询参数的最佳方法是什么?如果我使用的是PostMethod,则非常简单: 但是,GetMethod没有“ addParameter”方法。我发现这可行: 但是,我见过的大多数示例都将参数直接硬编码到URL中,例如: 或硬编码查询字符串,例如: 这些模式之一是首选吗?以及为什么Post

  • 问题内容: 我有桌子上的产品 产品 我需要按任何值更新“数量”,例如“ 5 + 3” 需要如下输出 我该如何写查询? 问题答案:

  • 问题内容: 我想将键值对作为查询参数附加到现有URL。虽然我可以通过检查URL是否存在查询部分还是片段部分并通过跳过一堆if子句来执行追加来做到这一点,但是我想知道是否有通过Apache进行清理的干净方法公共图书馆或类似的东西。 将是 将是 将是 将是 我之前已经运行过多次这种情况,并且我希望做到这一点而不会以任何方式破坏URL。 问题答案: 这可以通过使用java.net.URI类使用现有实例中

  • 我的任务是用hibernate的数据值填充prime faces数据表。我们可以通过这个查询获取表中的所有记录 将从表雇员中获取所有记录,雇员字段有两个字段名称,以及将其转换为列表的Hibernate查询 列表=查询。list();我想将其转换为数组列表,其中包含两个字段name,age和hibernate中的所有对象 然后用 有人能举例说明吗

  • 我正在使用Swashbuckle(C#的招摇)与我的Web API。我有几个返回列表的 GET endpoint,我允许用户将每页和页面参数添加到 QueryString 中 例如:http://myapi.com/endpoint/?page=5 我看到 swagger 确实支持“查询”中的参数,但我如何让 Swashbuckle 做到这一点? 我在其中一条评论中提到,我通过创建一个自定义属性来

  • 我有一个使用. NET 6 Web API的应用程序。一旦用户登录到应用程序,关于该用户的基于小上下文的信息被附加到查询参数。 API中AuthPolicy的一部分是,当调用endpoint时,这些查询参数必须存在,即使该endpoint没有使用它们。 例如,此 终结点具有在请求正文中传递的实际输入,但 AuthPolicy 要求查询参数存在,即使未使用它也是如此。 有效EX: 无效的EX: 有没