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