Mysql Where子句不提取数据

时间:2015-12-24 06:18:16

标签: mysql

guage_names是varchar incharge_id是整数 table有一个option_id列,它是唯一的,primary和autoincreament。

表格中有一行包含incharge_id 86

但是查询失败了。

  

错误号码:1064

     

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第1行'选项WHERE incharge_id = 260'附近

SELECT guage_names FROM option WHERE incharge_id = 86

4 个答案:

答案 0 :(得分:1)

请改用:

SELECT guage_names FROM `option` WHERE incharge_id = 86

option是保留关键字(https://dev.mysql.com/doc/refman/5.6/en/keywords.html

答案 1 :(得分:1)

OPTION是reserved word。 你需要用反引号包装它。

In [5]: X - X_mean[:,None,:]
Out[5]: 
array([[[ 0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.]],

       [[ 0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.],
        [ 0.,  0.,  0.,  0.]]])

注意特殊的反击。 From the documentation

  

标识符引号字符是反引号(“`”)如果是   ANSI_QUOTES SQL模式已启用,也允许引用   双引号内的标识符

您还应该考虑更改表的名称。对表/列名称使用保留字是不好的做法,因为它会带来额外的复杂性。

答案 2 :(得分:1)

正如其他人已经说过的那样,这是一个保守的词。

不要使用它。您应该将此表的 RENAMING 视为任何其他名称 - 因为它也不是保留字。

答案 3 :(得分:0)

如果表名和列名guage_names包含空格,则添加反引号,但表名中的空格不正确。