、、の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・その他お役立ち情報引用
間違った「`」を使用しています
代わりに ' を使用
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
目盛りは、フィールド名を示すために使用されます。