首页 > 解决方案 > 我在 Postgres 中的 WHERE 条件有什么问题?

问题描述

我正在运行查询SELECT * FROM app_user WHERE login_id = "john";并获得 -

ERROR:  column "john" does not exist
LINE 1: SELECT * FROM public.app_user WHERE login_id = "john";
                                                       ^
SQL state: 42703
Character: 48

我也试过SELECT * FROM public.app_user WHERE login_id = "john";了,我仍然得到同样的错误。

除了 id 列(id 是唯一的非 VARCHAR 列并且是主键)之外的任何其他列也会发生相同的错误。

所以,SELECT * FROM app_user WHERE id = 5;按预期工作。

该表的快照如下。

表格快照

标签: postgresqlstring-constant

解决方案


如果你用双引号写字符串,postgres 会将它解释为 WHERE 子句中的列名,只需使用单引号:

SELECT * FROM public.app_user WHERE login_id = 'john';

推荐阅读