“列 'Mary' 不存在”:了解引用难题
执行以下 SQL 查询时,您可能会遇到错误表明“Mary”列不存在:
SELECT telephone.telephonenumber AS tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = ‘Mary’;
令人困惑的是,你不存在将“Mary”引用为列名,而不是作为要比较的值。此错误的根源在于使用智能引号 ('Mary'),而不是普通的单引号 ('Mary') 来分隔字符串文字。
在 SQL 中,智能引号通常用于用于括起列名或表名,因为它们可以防止标识符可能与保留字冲突的情况下出现歧义。但是,当涉及字符串文字时,例如要与人名进行比较的值,则必须使用纯单引号。
通过将智能引号替换为纯单引号,查询应该成功执行,返回名为“Mary”的人的正确电话号码。以下是更正后的查询:
SELECT telephone.telephonenumber AS tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = 'Mary';
请记住,在 SQL 中对字符串文字使用纯单引号以避免错误并确保查询按预期运行至关重要。
以上是为什么我的 SQL 查询返回'列'Mary'不存在”?的详细内容。更多信息请关注PHP中文网其他相关文章!