首頁 >資料庫 >mysql教程 >為什麼我的 SQL 查詢回傳「列『Mary』不存在」?

為什麼我的 SQL 查詢回傳「列『Mary』不存在」?

Patricia Arquette
Patricia Arquette原創
2025-01-01 02:56:13453瀏覽

Why Does My SQL Query Return

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn