Использование оператора LIKE в Access работает, но не в Java - PullRequest
0 голосов
/ 16 октября 2010

Я делаю Java-приложение для магазина игрушек и использую базу данных MS-Access. Я использую оператор "LIKE" для поиска товаров в базе данных по ключевому слову пользователя.

например. в доступе:

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

это дает мне желаемый результат в доступе.

Но в Java, когда я запускаю этот же запрос, он возвращает ноль:

    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 голосов
/ 16 октября 2010

Я думаю, что в Java вам нужно избегать одинарных кавычек, поэтому попробуйте использовать \' для всех ваших одинарных кавычек, затем попробуйте % вместо *, как кто-то еще упомянул, так как % является подстановочным знаком для SQL.

0 голосов
/ 16 октября 2010

Есть две возможности для подстановочных знаков в зависимости от того, где вы выполняете запрос, * или%. В этом случае вам нужно%

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...