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+"%\'";