我正在为玩具店制作一个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;
任何人都可以帮我这个吗?我知道它一定是简单的,我现在错过了,但我不知道该怎么做。非常感谢你的帮助。
答案 0 :(得分:0)
根据您运行查询的位置,*或%,通配符有两种可能性。在这种情况下,您需要%
答案 1 :(得分:0)
我认为使用Java,您需要转义单引号,因此请尝试使用\'
表示所有单引号,然后尝试%
而不是其他人提到的*
,因为{ {1}}是SQL的通配符。