我无法理解为什么有$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]]
答案 0 :(得分:0)
输出中的$1
表示位置参数,例如["id", 123]
,其中包含您放入查询的id
。
即。来自PostgreSQL docs:
美元符号($)后跟数字用于表示位置 函数定义的主体中的参数或准备好的 声明。在其他情况下,美元符号可能是其中的一部分 标识符或美元引用的字符串常量。