当语法正确时,LIKE在MYSQL中不起作用

时间:2013-04-04 12:39:23

标签: java mysql sql

public ResultSet getResourcesById(String id, String type)
{
    try {
        conn = connect();
        selectStatement = "SELECT * FROM " + type + "WHERE ID LIKE ?";
        preparedStatement = conn.prepareStatement(selectStatement);
        preparedStatement.setString(1, "%ba%");
        res = preparedStatement.executeQuery();
        return res;

    } catch (SQLException ex) {
        Logger.getLogger(CatalogDB.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
}

大家好。我在我的系统中使用java。我试图输入一个仲裁字符串,但它一直告诉我这个错误:

  

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个   SQL语法错误;查看与您的手册相对应的手册   MySQL服务器版本的正确语法在'LIKE'%ba%''附近使用   第1行

有人可以向我解释为什么会出现这个错误,我很确定我正确地遵循了语法。

1 个答案:

答案 0 :(得分:15)

错误不在LIKE上。您在WHERE子句之前错过了一个额外的空格。

selectStatement = "SELECT * FROM " + type + " WHERE ID LIKE ?";
                                             ^  add space here