我無法運行帶有where
子句的簡單選擇查詢。 我正在使用MySQL並有一列User ID
。列名'User ID'的簡單WHERE子句?
問題在於列名由兩個單詞組成。
select * from user where 'User ID' = "xyz"
喜歡下一個的通常查詢按預期運行良好:
select * from user where email = 'xyz'
我怎麼能寫上User ID
列的條件?
我無法運行帶有where
子句的簡單選擇查詢。 我正在使用MySQL並有一列User ID
。列名'User ID'的簡單WHERE子句?
問題在於列名由兩個單詞組成。
select * from user where 'User ID' = "xyz"
喜歡下一個的通常查詢按預期運行良好:
select * from user where email = 'xyz'
我怎麼能寫上User ID
列的條件?
無法重命名此列嗎?
select * from user where `User ID` = 'xyz';
謝謝..我今天才知道這樣的角色存在於我們的標準鍵盤上。 – Rpant 2012-03-25 03:00:18
嘗試:
SELECT u.*
FROM `user` u
WHERE u.`User ID` = 'xyz';
但在一般情況下,儘量不要使用這樣的列名。
如果您有與MySQL關鍵字衝突的名稱,例如使用反引號來限定表名和/或列名,也很有用。 user
。
我覺得用戶是保留字...
搜索:
可以與各地列名反引號中查詢嘗試
SELECT *
FROM `user`
WHERE `email` = 'xyz';
像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
標準SQL,你周圍使用名稱雙引號來表示它們(分隔)標識符,並區分大小寫。在MS SQL Server中,您可以在名稱周圍使用方括號;在MySQL中,您可以在名稱周圍使用反標記。單引號表示所有SQL DBMS中的字符串。通常,雙引號也可以作爲字符串,這導致了各種替代符號。 – 2012-03-25 00:25:51