我正在使用JSP,Servlets和Mysql开发一个简单的Web应用程序。我在Mysql数据库中有一个叫做注释的表。我想只根据' OR'来获取记录。和' AND'来自Mysql。但不幸的是我得到了一个jdbc-Mysql Synatax异常。我正在编写SQL查询,如下所示:
dbconnection=new dbconnection();
connection=dbconnection.setConnection();
Transcript_ID=request.getParameter("Transcript_ID");
Condition_1=request.getParameter("Condition_1"); // Can be "OR" or "AND".
Gene_Symbol=request.getParameter("Gene_Symbol");
Condition_2=request.getParameter("Condition_2"); // Can be "OR" or "AND".
Molecular_Function=request.getParameter("Molecular_Function");
Condition_3=request.getParameter("Condition_3"); // Can be "OR" or "AND".
Biological_Process=request.getParameter("Biological_Process");
stmt=connection.createStatement();
query="select * from annotations where ID='"+Transcript_ID+"','"+Condition_1+"',Gene_Symbol='"+Gene_Symbol+"','"+Condition_2+"',"+ "Molecular_Function='"+Molecular_Function+"','"+Condition_3+"',Biological_Process='"+Biological_Process+"'";
我在控制台中遇到的错误是
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在'' OR',',' OR',' OR'中使用正确的语法, Molecular_Function =''' OR',Biological_Process ='''在第1行
任何人都可以指导我在我的sql语法中出错的地方。
答案 0 :(得分:1)
从条件
中删除逗号query="select * from annotations where ID='"+Transcript_ID+"' "+Condition_1+" Gene_Symbol='"+Gene_Symbol+"' "+Condition_2+" "+ "Molecular_Function='"+Molecular_Function+"' "+Condition_3+" Biological_Process='"+Biological_Process+"'";
答案 1 :(得分:0)
您不是替换AND / OR结,而是替换逗号。
请让我们看看生成代码的sql语句。
答案 2 :(得分:0)
不要在sql语句中添加“,”删除逗号并添加类似和/或的条件,或者你可以像('abc','cba')那样使用Gene_Symbol