2012-03-24 88 views
0

我無法運行帶有where子句的簡單選擇查詢。 我正在使用MySQL並有一列User ID列名'User ID'的簡單WHERE子句?

問題在於列名由兩個單詞組成。

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

喜歡下一個的通常查詢按預期運行良好:

select * from user where email = 'xyz' 

我怎麼能寫上User ID列的條件?

+0

標準SQL,你周圍使用名稱雙引號來表示它們(分隔)標識符,並區分大小寫。在MS SQL Server中,您可以在名稱周圍使用方括號;在MySQL中,您可以在名稱周圍使用反標記。單引號表示所有SQL DBMS中的字符串。通常,雙引號也可以作爲字符串,這導致了各種替代符號。 – 2012-03-25 00:25:51

回答

1

無法重命名此列嗎?

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

謝謝..我今天才知道這樣的角色存在於我們的標準鍵盤上。 – Rpant 2012-03-25 03:00:18

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" 

或PHP MySQL的管理員:

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

我不知道關於MySQL,但在SQL Server中,即使「登錄」或「用戶」是一些保留的話,他們是在正常的查詢功能。儘管如此,我認爲最好不要使用它。

我希望這可以幫助你或另一個。擁抱。

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