2011-07-26 72 views
2

我想使用关键字进行MySQL查询。有没有什么方法来封装这些关键字,以便我可以使用它们呢?在查询中使用MySQL关键字?

这里是不会执行查询:

INSERT INTO PendingPasswordRecovery (key, userID, TimeModified, TimeCreated, TimeDeleted, IsDeleted) VALUES ('test123', 1, '2011-07-26 16:26:56', '2011-07-26 16:26:56', '1000-01-01 00:00:00', false) 

正如你可能已经猜到了已经,“钥匙”是,我使用的查询关键词,这家饭店目前也的名字我想要使​​用的列。

回答

4

使用反引号:

INSERT INTO PendingPasswordRecovery (`key`, `userID`, `TimeModified`, `TimeCreated`, `TimeDeleted`, `IsDeleted`) VALUES ('test123', 1, '2011-07-26 16:26:56', '2011-07-26 16:26:56', '1000-01-01 00:00:00', false) 

我已经加入反引号到所有的列名,但你可以做它的关键字。反引号被称为“标识符引号字符”。欲了解更多信息,请参见:http://dev.mysql.com/doc/refman/5.1/en/reserved-words.htmlhttp://dev.mysql.com/doc/refman/5.1/en/identifiers.html

2

只需将它们用反引号

INSERT INTO PendingPasswordRecovery (`key`, userID, TimeModified, TimeCreated, TimeDeleted, IsDeleted) VALUES ('test123', 1, '2011-07-26 16:26:56', '2011-07-26 16:26:56', '1000-01-01 00:00:00', false) 
            ^^^^^^^^^ 

Here's the list of MySQL reserved keywords.

1

使用`逃脱列名:

INSERT INTO PendingPasswordRecovery (`key`, `userID`, `TimeModified`, `TimeCreated`, `TimeDeleted`, `IsDeleted`) VALUES ('test123', 1, '2011-07-26 16:26:56', '2011-07-26 16:26:56', '1000-01-01 00:00:00', false) 
-1

我不认为有是这样做的一种方式。 尝试key但更好的方法是始终重命名您的字段