sql - 有人可以帮我指出这个简单的 WHERE 子句有什么问题吗?

标签 sql postgresql select syntax-error

这很简单,但不知何故,我对我的数据库的这个查询做错了。

我在下面有这个查询:

SELECT login FROM accounts WHERE login = "loginname";

当我执行这个查询时,我得到的结果是这样的:

column "loginname" does not exist

这很简单,为什么这个查询不能正常工作?我有一个登录列,我知道这个用户存在,因为我已经通过 Rails 控制台找到了这个人。为什么登录条件将其自身称为列?

最佳答案

如果要匹配字符串,请尝试使用单引号 ''

SELECT login FROM accounts WHERE login = 'loginname';

检查 documentation

There is a second kind of identifier: the delimited identifier or quoted identifier. It is formed by enclosing an arbitrary sequence of characters in double-quotes ("). A delimited identifier is always an identifier, never a key word. So "select" could be used to refer to a column or table named "select", whereas an unquoted select would be taken as a key word and would therefore provoke a parse error when used where a table or column name is expected.

关于sql - 有人可以帮我指出这个简单的 WHERE 子句有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34336651/

相关文章:

sql - 从表中选择不同 - 两列不应该有重复

sql - 具有限制的 Postgres 查询选择具有相似标识符的所有记录

css - 重力形式 选择占位符样式

mysql - 选择两周前的查询

sql - 划分两个查询的输出

sql - 在 Oracle 中的每个级别计算最小值的分层查询

arrays - PostgreSQL 中数组类型的大小/长度限制

spring - 处理请求时发生PSQLException

PostgreSQL 嵌套选择

mysql - 基于星期几列透视 MySQL 表