在Access中使用LIKE运算符但在Java中不使用

时间:2010-10-15 22:12:42

标签: java sql ms-access

我正在为玩具店制作一个java应用程序并使用MS-Access数据库。 我正在使用运营商“LIKE”使用用户的关键字在数据库中搜索产品。

E.g。在Access中:

SELECT * FROM tblToy WHERE toyName LIKE '*puppy*' OR toyBrand LIKE '*puppy*'

这给了我理想的访问结果。

但是在java中,当我运行相同的查询时,它返回null:

    String query = "puppy";
    sql = "SELECT * FROM tblToy WHERE toyName LIKE '*" + query+"*' "+
                "OR toyBrand LIKE '*" + query + "*'";
        rs = db.executeQuery(sql);
        while(rs.next()){

            String name = rs.getString("toyName");

            return name;
        }

        return null;

任何人都可以帮我这个吗?我知道它一定是简单的,我现在错过了,但我不知道该怎么做。非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

根据您运行查询的位置,*或%,通配符有两种可能性。在这种情况下,您需要%

答案 1 :(得分:0)

我认为使用Java,您需要转义单引号,因此请尝试使用\'表示所有单引号,然后尝试%而不是其他人提到的*,因为{ {1}}是SQL的通配符。