ホームページ >データベース >mysql チュートリアル >列が存在するにもかかわらず、クエリが「列 'Mary' が存在しません」というメッセージで失敗するのはなぜですか?
列 'Mary' が存在しません: クエリの失敗
クエリを実行すると、次のことを示すエラー メッセージが表示されることがあります。データベース内に特定の列が存在しても、その列は存在しません。このようなシナリオの 1 つは、クエリが誤った文字を含む列名を参照している場合です。
The Case of 'Mary'
この例では、エラーは列に関係しています。 「メアリー」。ただし、クエリを調べると、クエリ内に「Mary」という名前の列が存在しないことが明らかになります。代わりに、'Mary' は列 'personname' に割り当てられる値であることを意図しています。
ここで重要なのは、エラーは 'Mary' の文字エンコーディングが正しくないために発生するということです。クエリでは、「Mary」は Unicode 文字であるスマート引用符 (「Mary」) で囲まれています。データベース システムは一般に、ASCII エンコードされた単純な一重引用符 ('Mary') を好みます。
問題の解決
この問題を解決するには、スマート引用符を次のように置き換えます。クエリ内の単純な一重引用符。クエリを次のように変更します。
SELECT telephone.telephonenumber as tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = 'Mary';
このわずかな調整により、クエリは「Mary」という名前を持つ人を正しく検索し、その電話番号を取得できるようになります。
以上が列が存在するにもかかわらず、クエリが「列 'Mary' が存在しません」というメッセージで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。