Я пытаюсь создать метод определения, существует ли пользователь в базе данных SQL sqlite перед вставкой, я попытался построить этот метод, чтобы вернуть количество строк, однако, если я попытаюсь поиск, как спички, как этотAndroid sqlite возвращает количество строк из запроса
String[] columns = new String[] { SCREEN_NAME, NAME, PROFILE_IMAGE_URL,
USER_ID };
Cursor c = friendsDatabase.query(DATABASE_TABLE, columns, SCREEN_NAME
+ " LIKE '" + screenName + "%'", null, null, null, null);
c.moveToFirst();
Integer count= c.getCount();
c.close();
return count;
я получаю число строк не дало никаких проблем, однако минуты я смотрю на точное соответствие, как этого
String[] columns = new String[] { SCREEN_NAME, NAME, PROFILE_IMAGE_URL,
USER_ID };
Cursor c = friendsDatabase.query(DATABASE_TABLE, columns, SCREEN_NAME
+ " = '" + screenName + "'", null, null, null, null);
c.moveToFirst();
Integer count= c.getCount();
c.close();
return count;
Я получаю 0 строк каждый раз, независимо от того, если он соответствует или нет, я не уверен, что что-то не так с моим SQL или может быть, им, используя неправильные аргументы, чтобы сделать заявление, любая помощь будет пройти долгий путь, благодаря
Почему вы используете LIKE? Ваш запрос LIKE ищет соответствие префикса, а не полное совпадение, например '='. Возможно, вам лучше добавить соответствующее уникальное ограничение в столбце имени экрана и захватить исключение. –
Я использовал LIKE в качестве примера того, что у меня получилось, что мне нужно, это количество строк, возвращаемых для точного совпадения, однако я не могу заставить это работать во втором примере –
У вас есть это имя экрана в вашей базе данных? Указывает ли имя экрана внутри базы данных и тот, на который вы запрашиваете, только в случае? –