包含名为"order"的列的查询的查询错误

Mat*_*iby 5 mysql sql mysql-error-1064

对于我的生活,我似乎可以搞清楚

INSERT INTO category SET CategoryName = 'Hardware_1',
Category = 'HARDWARE', Status = '1', Order = '1'

 You have an error in your SQL syntax; check the manual that 
 corresponds to your MySQL server version for the right syntax 
 to use near 'Order = '1'' at line 1

CREATE TABLE `category` (
  `CategoryID` int(11) NOT NULL AUTO_INCREMENT,
  `CategoryName` varchar(255) NOT NULL,
  `Category` varchar(255) NOT NULL,
  `Status` tinyint(4) NOT NULL,
  `Order` int(11) NOT NULL,
  PRIMARY KEY (`CategoryID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)

Bug*_*ill 8

Order是一个保留字.如果您打算使用它,请在反引号中附上订单.

INSERT INTO category SET CategoryName = 'Hardware_1',
Category = 'HARDWARE', Status = '1', `Order` = '1'
Run Code Online (Sandbox Code Playgroud)

  • 你是一个保留字是对的,但带有INSERT语句的SET语法确实有效. (2认同)
  • 虽然Set语法显然是有效的,但您可能会考虑使用更标准的值子句.从长远来看,如果您需要更改数据库后端,因为Set语法在其他数据库中无效,它将更容易维护并且更易于移植. (2认同)

Bra*_*don 6

正如Cfreak在评论中指出的那样,您的语法是有效的.这是您使用未转义的Order关键字的问题.

Insert Into category (CategoryName, Category, Status, `Order`)
Values ('Hardware_1', 'HARDWARE', '1', '1')
Run Code Online (Sandbox Code Playgroud)