「列 '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中文網其他相關文章!