2

我正在构建一个列出团队和比赛的简单应用程序。Team 和 Match 数据库是使用以下脚本构建的(我使用的是 PhpMyadmin):

CREATE TABLE IF NOT EXISTS `Team` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(120) NOT NULL,
  `screen_name` varchar(100) NOT NULL,
  `sport_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

CREATE TABLE IF NOT EXISTS `Match` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sport_id` int(11) NOT NULL,
  `team_one_id` int(11) NOT NULL,
  `team_two_id` int(11) NOT NULL,
  `venue` varchar(80) NOT NULL,
  `kick_off` datetime NOT NULL,
  PRIMARY KEY (`id`)
   ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

如果我做:

SELECT * FROM Team

脚本运行,我得到一个空结果。但是,令人难以置信的是,如果我这样做了

SELECT * FROM Match

我收到以下错误:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“匹配”附近使用正确的语法

相反,我必须这样做:

SELECT * FROM `Match`

它有效。我在数据库中有其他表,但这是唯一这样的行为。任何想法为什么?

4

3 回答 3

2

Match 是 MySQL 中的一个函数,因此您必须在它周围加上引号。

于 2013-08-01T20:39:54.157 回答
2

match是 SQL 中的保留字

在此处阅读更多信息: https ://drupal.org/node/141051

于 2013-08-01T20:40:49.543 回答
1

您需要将其封装在引号中,因为Match它是关键字

查看关键词列表

于 2013-08-01T20:42:00.627 回答