在SQL上运行查询,在java上运行时出现语法错误

时间:2015-03-27 19:11:54

标签: java mysql sql syntax

我试图调用查询:

UPDATE questions 
SET 1 = 4
WHERE questionid = 4;

但我一直收到SQL语法错误。我的表中有一列名为' 1',我想将列值设置为整数4.我尝试了其他一些查询(下面),但我仍然是同样的错误。

UPDATE questions 
SET '1' = 4
WHERE questionid = 4;

UPDATE questions 
SET '1' = 4
WHERE 'questionid' = 4;

UPDATE questions 
SET "1" = 4
WHERE questionid = 4;

UPDATE questions 
SET "1" = 4
WHERE "questionid" = 4;

我尝试使用Statement java API中的executeUpdate()方法在java中执行此查询。

我知道有些人会建议我使用PerformedStatement而不是常规Statement来构建查询,我会做,一旦我弄清楚为什么我的查询不接受1是列名而不是一个整数。

2 个答案:

答案 0 :(得分:2)

在列名称周围使用反引号:

UPDATE questions 
SET `1` = 4
WHERE questionid = 4;

考虑重命名专栏。

答案 1 :(得分:1)

尝试以下方法:

UPDATE questions
SET [1] = 2 -- int
WHERE QuestionID = 1;