Java 如何使用union运算符连接sql查询
试试这个:Java 如何使用union运算符连接sql查询,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,试试这个: String Query="select * from recommendation.sports WHERE feed LIKE'%"+s1+"%' UNION "select * from recommendation.software WHERE feed LIKE '%"+s1+"%' UNION "select * from recommendation.website WHERE feed LIKE '%"+s1+"%' UNION "
String Query="select * from recommendation.sports WHERE feed LIKE'%"+s1+"%'
UNION "select * from recommendation.software WHERE feed LIKE '%"+s1+"%'
UNION "select * from recommendation.website WHERE feed LIKE '%"+s1+"%'
UNION "select * from recommendation.others WHERE feed LIKE '%"+s1+"%'
UNION "select * from recommendation.business WHERE feed LIKE '%"+s1+"%'";
也许你是说这个
String Query="select * from recommendation.sports WHERE feed LIKE'%"+s1+"%'
UNION select * from recommendation.software WHERE feed LIKE '%"+s1+"%'
UNION select * from recommendation.website WHERE feed LIKE '%"+s1+"%'
UNION select * from recommendation.others WHERE feed LIKE '%"+s1+"%'
UNION select * from recommendation.business WHERE feed LIKE '%"+s1+"%'";
但是我建议您在查询中使用PreparedStatements
,以避免SQL注入
String Query = "select * from recommendation.sports WHERE feed LIKE '%" + s1 + "%' " +
"UNION " +
"select * from recommendation.software WHERE feed LIKE '%" +s1+ "%' " +
"UNION " +
"select * from recommendation.website WHERE feed LIKE '%" +s1+" %' " +
"UNION " +
"select * from recommendation.others WHERE feed LIKE '%"+s1+"%' " +
"UNION " +
"select * from recommendation.business WHERE feed LIKE '%" +s1+ "%'" ;
- 有些小改动,请查看
String Query = "select * from recommendation.sports WHERE feed LIKE CONCAT('%', ?, '%') " +
"UNION " +
"select * from recommendation.software WHERE feed LIKE CONCAT('%', ?, '%') " +
"UNION " +
"select * from recommendation.website WHERE feed LIKE CONCAT('%', ?, '%') " +
"UNION " +
"select * from recommendation.others WHERE feed LIKE CONCAT('%', ?, '%') " +
"UNION " +
"select * from recommendation.business WHERE feed LIKE CONCAT('%', ?, '%')" ;
PreparedStatement pstmt = con.prepareStatement(Query);
pstmt.setString(1, s1);
pstmt.setString(2, s1);
pstmt.setString(3, s1);
pstmt.setString(4, s1);
pstmt.setString(5, s1);
ResultSet _result = pstmt.executeQuery();
试试这个,告诉我它是否有效。检查..上面的代码在mysql数据库中运行良好,与jdbc中使用的代码相同,我在标记“UNION”上得到编译时错误语法错误,[expected@R.J上述代码在mysql数据库中运行良好,与jdbc i中使用的代码相同,在标记“UNION”上出现编译时错误语法错误,[预计我会尝试修改代码,但它不起作用,如果所有表都没有确切的列名、类型和顺序,您可以使用select*修改我的代码吗?如果所有表都没有确切的列名、类型和顺序,您的代码将不起作用。您在每个
UNION
和select
之间有一个额外的双引号,很抱歉,您的代码也会出错,您的代码在mysql数据库中工作正常,但在jdbc,它得到了一个error@JVV您的代码在mysql数据库中运行良好,但在jdbc中,如果您使用prepared语句重新编写代码,则会出现错误。@jvv String literal未正确地用双精度-quote@JVV字符串文字未被双引号正确关闭
String Query="select * from recommendation.sports WHERE feed LIKE \'%"+s1+"%\'
UNION select * from recommendation.software WHERE feed LIKE \'%"+s1+"%\'
UNION select * from recommendation.website WHERE feed LIKE \'%"+s1+"%\'
UNION select * from recommendation.others WHERE feed LIKE \'%"+s1+"%\'
UNION select * from recommendation.business WHERE feed LIKE \'%"+s1+"%\'";