apostrophe
SQL的查询字符串和quotation mark
SQL中的角色是什么?怎么可能apostrophe
被替换?
主要兴趣是他们在 PostgreSQL 中的特定角色。
省略apostrophe
混乱的 SQL 查询,例如:
SELECT role FROM "USER_ROLES" WHERE "USER_ROLES".login = admin;
当管理员是一个值时,获取“列”管理员不存在错误。写'admin'可以纠正这个问题:
SELECT role FROM "USER_ROLES" WHERE "USER_ROLES".login = 'admin';
实际问题是在另一个上下文中使用查询:
<module-option name="rolesQuery" value="SELECT 'role', 'Roles' FROM "USER_ROLES" WHERE login='?'"/>
根据要求,表定义为:
CREATE TABLE "USER_ROLES" (
login text NOT NULL,
role text,
CONSTRAINT "USER_ROLES_pkey" PRIMARY KEY (login ),
CONSTRAINT "USER_ROLES_login_fkey" FOREIGN KEY (login)
REFERENCES "USER" (login) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
PostgreSQL 版本 9.1。