3

我在网上搜索了几次,但没有找到任何可以帮助我的东西(在 java 中)。

事实上,我需要在 sql 表中搜索一些包含连字符的引用中的一些行。产生的问题是 sql 用减法的结果替换了我的引用。列的类型是字符串。

Statement stmt = con.createStatement();
String query = "SELECT * FROM WAREHOUSE WHERE REF LIKE('96-18')" ;
Statement statement = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

ResultSet rs = statement.executeQuery(query);
while (rs.next()) {
    System.out.println(rs.getString("S_FAMILY"));
}

在这段代码中,它用 78 替换了我的引用,并且自然不会返回好的结果。

我搜索了一个转义字符,但没有找到。

4

2 回答 2

2

尝试String在查询中发送 as 参数。这样做需要将 into 更改StatementPreparedStatement

String query = "SELECT * FROM WAREHOUSE WHERE REF LIKE(?)" ;
PreparedStatement pstatement = con.prepareStatement(query,
            ResultSet.TYPE_FORWARD_ONLY,
            ResultSet.CONCUR_READ_ONLY);
pstatement.setString(1, "96-18");
ResultSet rs = pstatement.executeQuery();

注意:您应该"96-18"作为String变量的值发送,不要对其进行硬编码。

于 2013-03-21T15:54:49.883 回答
0

你可以试试

SELECT * FROM WAREHOUSE WHERE REF LIKE('96\-18') ESCAPE '\'

希望能帮助到你

于 2013-03-21T15:56:02.920 回答