ホームページ >データベース >mysql チュートリアル >列が存在するにもかかわらず、クエリが「列 'Mary' が存在しません」というメッセージで失敗するのはなぜですか?

列が存在するにもかかわらず、クエリが「列 'Mary' が存在しません」というメッセージで失敗するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-03 15:45:39528ブラウズ

Why Does My Query Fail with

列 '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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。