我正在尝试使用其中的关键字进行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)
正如您可能已经猜到的那样,“key”是我在查询中使用的关键字,很遗憾,它也是我想要使用的列的名称。
答案 0 :(得分: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.html和http://dev.mysql.com/doc/refman/5.1/en/identifiers.html
答案 1 :(得分: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)
^^^^^^^^^
答案 2 :(得分: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)
答案 3 :(得分:-1)
我认为没有办法这样做。
试试key
,但更好的方法是重命名您的字段