无法选择列名int

时间:2016-05-27 17:39:57

标签: mysql sql

我已经下载了一个包含大量代码和表的源代码,在其中一个表中我得到了一个名为“int”的列(源代码很大,更改列名不适合我)。< / p>

无论如何,由于列名,我无法在我的网站上打印数据!除了列'int'之外,表中的任何其他列都可以工作。它告诉我这个错误:

  

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在第1行的'int FROM characters WHERE id ='30005''附近使用正确的语法。

我试着像这样选择它:

"SELECT int FROM characters WHERE id = '" + userId + "'";

我试过这样:

string selectIntSql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS 
                       WHERE TABLE_SCHEMA = 'moopledev' AND TABLE_NAME = 'characters' AND ORDINAL_POSITION = 11";

string selectInt = SqlConnector.printData(selectIntSql);
"SELECT " + selectInt + " FROM characters WHERE id = '" + userId + "'";

没有任何效果。 知道该怎么办吗?

3 个答案:

答案 0 :(得分:4)

SQL(任何SQL)都包含保留字,最好不要将其用作列名。 INT非常明显。

解决这个问题的方法是:

  • 使用更好的列名称
  • 或在列上使用反引号

反推示例:

 `int`

答案 1 :(得分:3)

int是一个关键字,因此您必须使用反引号将其转义。

"SELECT `int` FROM characters WHERE id = '" + userId + "'";

答案 2 :(得分:3)

如果您使用保留关键字作为列或表名称 你必须用这样的反引号引用它们:

"SELECT `int` FROM characters WHERE id = '" + userId + "'";