1. ホーム
  2. mysql

[解決済み] MySQLのエラーです。where節'に不明なカラムがある

2022-03-04 11:34:03

質問

というテーブルがあります。 bank を3つのカラムで構成しています。 uid , nick , balance .

ニックネームに基づいて残高を返すクエリを作成しようとしているのですが、エラーが発生します。 Unknown column 'Alex' in 'where clause' このクエリを使用すると

SELECT b.balance FROM bank AS b WHERE b.nick=`Alex` LIMIT 1

何が間違っているのか、どなたかおわかりになりますか?

解決方法は?

バックダクト (`) はテーブル名、カラム名などの識別子に使用されます。シングルクォート(')は、文字列リテラルに使用されます。

したいのでしょう。

SELECT b.balance FROM bank AS b WHERE b.nick='Alex' LIMIT 1

あるいは、もっとはっきり言うと

SELECT `b`.`balance` FROM `bank` AS b WHERE `b`.`nick`='Alex' LIMIT 1

曖昧さがなく、テーブル名やカラム名に特殊文字や空白がない場合は、`を省略することができます。

辛口で読みにくいドキュメントを紹介します。 http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

しかし、ここにdba.stackoverflowの関連質問があり、より読みやすくなっています。 https://dba.stackexchange.com/questions/23129/benefits-of-using-backtick-in-mysql-queries

そして、ここに、皆さんに一読をお勧めするとても良いページがあります。 http://www.sitepoint.com/forums/showthread.php?408497-the-big-bad-thread-of-quot-MySQL-Best-Practices-and-Other-Useful-Information-quot