我一直在拔头发。我有一个非常简单的postgre数据库,一个特定的表有一个名为lName(大写N)的列。现在我知道使用postgre我必须引用lName,因为它包含一个大写的N。
我正在尝试使用以下语句查询数据库:
SELECT *
FROM employee
WHERE "lName" LIKE "Smith"
但我收到此错误:
警告:pg_query()[function.pg-query]:查询失败:错误:..中不存在列“ Smith”。
这是什么问题?为什么说该列为“史密斯”?
我猜:
SELECT * FROM employee WHERE "lName" LIKE 'Smith'
(请注意不同的引号;"foo"
是带引号的标识符;'foo'
是字符串文字)
同样,在大多数SQL方言中,LIKE
不带通配符的a等效于=
;。您是要添加通配符吗?
问题内容: 我正在尝试运行以下PHP脚本来执行简单的数据库查询: 这将产生以下错误: 查询失败:错误:关系“ sf_bands”不存在 在所有示例中,我都能找到有人指出该关系不存在的错误,这是因为他们在表名中使用大写字母。我的表格名称没有大写字母。有没有一种方法可以查询我的表而不包含数据库名称,即? 问题答案: 从我所读的内容来看,此错误表示您未正确引用表名。一个常见的原因是该表是使用大小写混合的
问题内容: 我正在尝试运行以下PHP脚本来执行简单的数据库查询: 这将产生以下错误: 查询失败:错误:关系“ sf_bands”不存在 在所有示例中,我都能找到有人指出该关系不存在的错误,这是因为他们在表名中使用大写字母。我的表格名称没有大写字母。有没有一种方法可以查询我的表而不包含数据库名称,即? 问题答案: 根据我的阅读,此错误表示您未正确引用表名。一个常见的原因是该表是使用大小写混合的拼写定
6. 简单语句 简单语句包含在单一的一个逻辑行中。几个简单语句可以用分号分隔出现在单一的一行中。简单语句的语法是: simple_stmt ::= expression_stmt | assert_stmt | assignment_stmt | augmented_assignment_stm
每行只应该有一条语句,除非多条语句关联特别紧密。 case FOO: oogle (zork); boogle (zork); break; case BAR: oogle (bork); boogle (zork); break; case BAZ: oogle (gork); boogle (bork); break; for或while循环语句的空
问题内容: 当表中的列不存在时,为什么此查询会删除所有用户? 初始查询 : 更具体。 IN语句查询返回 : 运行 初始查询 返回 为什么会这样呢? 它是否应该在发生错误时停止执行或返回false或null? 运行PostgreSQL Server 9.0 问题答案: 根据ANSI标准,此行为是正确的。 如果未限定的列名称未在内部作用域中解析,则将考虑外部作用域。因此,您有效地执行了无意关联的子查询
我有一个表,它有20个整数列和一个名为“foo”的文本列 如果我运行查询: 我得到一个错误: 我已经核实过他的专栏确实存在。如果我这样做: 结果输出将“foo”显示为一列。。。。我猜我必须在查询中做一些特殊的事情,因为foo是一个文本列。。。 感谢您的帮助(POSTGRESQL 8.3)