【问题标题】:What is the dollar sign $ in rails log mean for SQL?Rails 日志中的美元符号 $ 对 SQL 意味着什么?
【发布时间】:2018-06-02 12:25:06
【问题描述】:

我很难理解为什么会有 $1 而不是 123,这是我输入的 id

Foo Load (0.4ms)  SELECT  "foos".* FROM "foos" WHERE "foos"."id" = $1 LIMIT 1  [["id", 123]]
Doorkeeper::Application Load (0.4ms)  SELECT "oauth_applications".* 
  FROM "oauth_applications" WHERE "oauth_applications"."id" IN (SELECT DISTINCT "oauth_access_tokens"."application_id" 
  FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."resource_owner_id" = $1
  AND "oauth_access_tokens"."revoked_at" IS NULL)  [["resource_owner_id", 123]]

【问题讨论】:

  • 它标记了一个参数。参数的名称和值在最后的括号中。在第一个示例中,您将 123 作为值传递给了名为 id 的第一个参数。在第二个示例中,您也将 123 传递给了名为 resource_owner_id 的第一个参数。

标签: sql ruby-on-rails logging


【解决方案1】:

您输出中的$1 代表一个位置参数,例如["id", 123],其中包括您输入查询的id

即来自PostgreSQL docs

后跟数字的美元符号 ($) 用于表示位置 函数定义或准备好的主体中的参数 陈述。在其他情况下,美元符号可能是 标识符或美元引用的字符串常量。

【讨论】:

    猜你喜欢
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多