Postgresql 查询中无法识别列名
尝试在 Postgresql 中执行简单的 SELECT 语句时,可能会遇到错误“column '史密斯并不存在。”这可能会令人困惑,特别是当您知道您引用的列确实存在于数据库中时。
根本原因:
问题源于以下方式Postgresql 处理带引号和不带引号的列名。在本例中,您在列名“lName”两边放置了双引号,以表明它是完全匹配的。但是,您将其与“Smith”进行比较的值并未用引号引起来。
解决方案:
要解决此问题,请确保列名和比较值括在相同类型的引号中。在 Postgresql 中,通常建议对字符串文字使用单引号:
SELECT * FROM employee WHERE "lName" LIKE 'Smith'
此外,您可能需要考虑在 LIKE 表达式中包含通配符。如果没有通配符,LIKE 比较相当于相等检查。如果您打算执行部分匹配,请包含通配符,例如“%”:
SELECT * FROM employee WHERE "lName" LIKE '%Smith%'
以上是为什么我的 Postgresql 查询返回'列 'Smith' 不存在”,即使该列存在?的详细内容。更多信息请关注PHP中文网其他相关文章!