Запрос к БД по первым символам

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
iamtihonov
Сообщения: 41
Зарегистрирован: 20 сен 2012, 12:57

Запрос к БД по первым символам

Сообщение iamtihonov » 16 дек 2012, 03:49

Подскажите пожалуйста как мне нужно написать запрос, что бы получить данные начинающиеся на определенную букву?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Запрос к БД по первым символам

Сообщение rezak90 » 16 дек 2012, 05:18

R.id.team
Политика на форуме запрещена

iamtihonov
Сообщения: 41
Зарегистрирован: 20 сен 2012, 12:57

Re: Запрос к БД по первым символам

Сообщение iamtihonov » 16 дек 2012, 11:01

спасибо)

iamtihonov
Сообщения: 41
Зарегистрирован: 20 сен 2012, 12:57

Re: Запрос к БД по первым символам

Сообщение iamtihonov » 17 дек 2012, 05:39

Подскажите, что я не так делаю? Пытался сделать запрос вот так, вот такая последняя версия
String sql = "SELECT * FROM " + WORLD_TIME_TABLE_NAME + " WHERE " + WORLD_TIME_COLUMN_REGION_RU + " LIKE = '?%'";
return mDB.rawQuery(sql, new String[]{name});

iamtihonov
Сообщения: 41
Зарегистрирован: 20 сен 2012, 12:57

Re: Запрос к БД по первым символам

Сообщение iamtihonov » 17 дек 2012, 06:04

Ура заработало! Странно что когда я name заносил в стринг не работало, а вот так без проблем
String sql2 = "SELECT * FROM " + WORLD_TIME_TABLE_NAME + " WHERE " + WORLD_TIME_COLUMN_REGION_RU + " LIKE '" + name + "%'";
return mDB.rawQuery(sql2, null);
Было бы хорошо ещё без учета регистра как то сделать это

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Запрос к БД по первым символам

Сообщение KamiSempai » 17 дек 2012, 12:14

iamtihonov писал(а):Ура заработало! Странно что когда я name заносил в стринг не работало, а вот так без проблем
String sql2 = "SELECT * FROM " + WORLD_TIME_TABLE_NAME + " WHERE " + WORLD_TIME_COLUMN_REGION_RU + " LIKE '" + name + "%'";
return mDB.rawQuery(sql2, null);
Ваш код уязвим для SQL инъекций. Для строковых значений лучше использовать параметры.
Так, кажется, должно работать.

Код: Выделить всё

String sql = "SELECT * FROM " + WORLD_TIME_TABLE_NAME + " WHERE " + WORLD_TIME_COLUMN_REGION_RU + " LIKE ?";
return mDB.rawQuery(sql, new String[]{name + "%"});
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

iamtihonov
Сообщения: 41
Зарегистрирован: 20 сен 2012, 12:57

Re: Запрос к БД по первым символам

Сообщение iamtihonov » 17 дек 2012, 21:48

Спасибо приму к сведению!

Ответить