2012-03-24 13 views
0

where句で単純な選択クエリを実行することができません。 私はMySQLを使用しており、カラムはUser IDです。カラム名 'User ID'の単純WHERE句?

問題は、2つの単語からなる列名にあります。

select * from user where 'User ID' = "xyz" 

期待通りに次のような一般的なクエリが正常に動作:

select * from user where email = 'xyz' 

にはどうすればいいUser ID列に条件を書くことができますか?

+0

、あなたは彼らが(区切り)識別子、および大文字と小文字が区別されることを示すために、名前を二重引用符を使用しています。 MS SQL Serverでは、名前の前後に角括弧を使用します。 MySQLでは、名前の前後にバックティックを使用します。一重引用符は、すべてのSQL DBMS内の文字列を示します。多くの場合、二重引用符も文字列として使用でき、さまざまな代替表記につながります。 –

答えて

1

この列の名前を変更する方法はありませんか?
あなたのクエリで列名の前後にバッククォートで試すことができます。

select * from user where `User ID` = 'xyz'; 
+0

ありがとう..私はちょうどそのような文字が私たちの標準的なキーボードに存在することを今日学んだ。 – Rpant

2

試してみてください。

SELECT u.* 
FROM `user` u 
WHERE u.`User ID` = 'xyz'; 

しかし、一般的には、そのような列名を使用しないようにしてください。

テーブルや列の名前を修飾するためにバッククォートを使用すると、MySQLキーワードと競合する名前がある場合などにも便利です。 user

-1

私は、ユーザーが予約語だと思う...

試してみてください。

SELECT * 
FROM `user` 
WHERE `email` = 'xyz'; 
1

Jonathan Lefflerなどがあれば、指摘しましたあなたはMS SQL Serverで試すことができます:

select * from user where [User ID] = "xyz" 

やMySQL PHP管理者で:

select * from user where ´User ID´ = "xyz" 

私は、MySQLわからないけど、SQL Serverの、いくつかの予約語であっても、「ログイン」または「ユーザー」に、彼らは通常、クエリで機能しています。それにもかかわらず、私はそれを使用しない方が良いと思います。

私はこれがあなたや他の人に役立つことを願っています。抱擁。

参考:標準SQLでは
1. Meaning of square brackets [] in MS-SQL table designer?
2. When to use single quotes, double quotes, and backticks in MySQL