我不知道这个查询有什么问题:
SQL = "UPDATE "+ choosenClass +" SET COUNT = "+count+" WHERE NAME = "+names;
stmt2.executeUpdate( SQL );
错误:
java.sql.SQLSyntaxErrorException: Column 'RAMAYAH' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'RAMAYAH' is not a column in the target table.
它表示列RAMAYAH不在那里,但字符串“RAMAYAH”本身取自同一个表。请帮助。
答案 0 :(得分:0)
尝试将字符串括在单引号中:
SQL = "UPDATE "+ choosenClass +" SET COUNT = "+count+" WHERE NAME = '"+names+"'";
stmt2.executeUpdate( SQL );
答案 1 :(得分:0)
除了其他人在评论中提及的SQL-Injection
漏洞外;您的查询几乎没有错误/问题。
您需要在WHERE
条件WHERE NAME = "+names
中引用过滤器值
WHERE NAME = '"+names+"'"
。否则,您的查询将形成如下所示,查询引擎将假定您的表中存在名为RAMAYAH
的列。
UPDATE tab1 SET COUNT = 10 WHERE NAME = RAMAYAH;
此外,在UPDATE
语句中,您有一个列名COUNT
,这是一个保留字。你需要逃脱它以保持安全。
如果您使用mysql,请使用backtique
sql-server使用
[]
方括号postgresql和oracle使用
""
双引号