Страница 1 из 1

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

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

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

Добавлено: 16 дек 2012, 05:18
rezak90

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

Добавлено: 16 дек 2012, 11:01
iamtihonov
спасибо)

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

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

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

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

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

Добавлено: 17 дек 2012, 12:14
KamiSempai
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 + "%"});

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

Добавлено: 17 дек 2012, 21:48
iamtihonov
Спасибо приму к сведению!