简单的 Postgresql 语句 - 列名不存在
Posted
技术标签:
【中文标题】简单的 Postgresql 语句 - 列名不存在【英文标题】:Simple Postgresql Statement - column name does not exists 【发布时间】:2011-08-13 14:26:21 【问题描述】:我一直在拔头发。我有一个非常简单的 postgre 数据库,一个特定的表有一个名为 lName(大写 N)的列。现在我知道使用 postgre 我必须引用 lName 因为它包含一个大写的 N。
我正在尝试使用以下语句查询数据库:
SELECT *
FROM employee
WHERE "lName" LIKE "Smith"
但我收到此错误:
警告:pg_query() [function.pg-query]:查询失败: 错误:“史密斯”列不存在 在.....
这里有什么问题?为什么说栏目是“Smith”?
【问题讨论】:
【参考方案1】:我猜:
SELECT * FROM employee WHERE "lName" LIKE 'Smith'
(注意不同的引号;"foo"
是带引号的标识符;'foo'
是字符串文字)
另外,在大多数 SQL 方言中,不带通配符的 LIKE
等价于 =
;您的意思是要包含通配符吗?
【讨论】:
【参考方案2】:因为"Smith"
是一个标识符,并且在那个位置,一个标识符应该是一个列。您可能的意思是使用单引号的字符串文字:'Smith'
。所以
SELECT * FROM employee WHERE "lName" LIKE 'Smith'
您可能还希望在字符串中使用通配符来搜索 ('Smith%'
?)。与典型的正则表达式匹配不同,LIKE
匹配锚定在字符串的开头和结尾。
【讨论】:
以上是关于简单的 Postgresql 语句 - 列名不存在的主要内容,如果未能解决你的问题,请参考以下文章
postgresql某数据表中有多天的记录存在,我想取某天的第一条和最后一条记录,数据库查询语句怎么写