SQL中rails log log的美元符号是什么意思?

时间:2017-12-20 01:37:21

标签: sql ruby-on-rails logging

我无法理解为什么有$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]]

1 个答案:

答案 0 :(得分:0)

输出中的$1表示位置参数,例如["id", 123],其中包含您放入查询的id

即。来自PostgreSQL docs

  

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