Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
#1

Выборка из базы случайной строки - Android

08.10.2013, 19:22. Просмотров 597. Ответов 9
Метки нет (Все метки)

Подскажите пожалуйста, как выбрать из базы, имеющей три столбца(id, text1, text2), случайную строку по id. А потом из этой строки поле text1 и text2 поместить в двумерный массив.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 415
08.10.2013, 21:48     Выборка из базы случайной строки #2
MySQL
1
2
3
SELECT _id FROM products
ORDER BY RANDOM()
LIMIT 1
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
09.10.2013, 10:56  [ТС]     Выборка из базы случайной строки #3
Подойдет. Только вот я хотел узнать как именно это реализовать. Я достаю строку из базы данных. Как мне достать нужные столбцы?
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 415
09.10.2013, 11:17     Выборка из базы случайной строки #4
Цитата Сообщение от Endenwer Посмотреть сообщение
Подойдет. Только вот я хотел узнать как именно это реализовать. Я достаю строку из базы данных. Как мне достать нужные столбцы?
Так:
T-SQL
1
2
3
SELECT * FROM products
ORDER BY RANDOM()
LIMIT 1
Или так:
T-SQL
1
2
3
SELECT id, text1, text2 FROM products
ORDER BY RANDOM()
LIMIT 1
Или нужна информация как работать с SQLite?
Тогда нужно читать про Cursor и rawQuery
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
09.10.2013, 12:21  [ТС]     Выборка из базы случайной строки #5
Да, мне нужно узнать как доставать столбцы и Cursor.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 415
09.10.2013, 12:47     Выборка из базы случайной строки #6
Цитата Сообщение от Endenwer Посмотреть сообщение
Да, мне нужно узнать как доставать столбцы и Cursor.
ну блин, а почитать?
как-то так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SQLiteDatabase database;
 
//подключаемся к БД, т.е. database должна быть проинициализирована
....
....
 
//далее получаем выборку
String query = "SELECT text1, text2 FROM products ORDER BY RANDOM() LIMIT 1";
Cursor cursor = database.rawQuery(query, null);
 
if (cursor.moveToNext())
  {
  String text1 = cursor.getString(cursor.getColumnIndex("text1"));
  ((TextView) view.findViewById(R.id.text1)).setText(text1);
  }
 
cursor.close();
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
10.10.2013, 22:04  [ТС]     Выборка из базы случайной строки #7
Почему-то при вызове cursor.getString(cursor.getColumnIndex()) второй раз(получение text2) приложение вылетает. Не могу понять почему. Подскажите пожалуйста, что не так.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 415
10.10.2013, 22:18     Выборка из базы случайной строки #8
Цитата Сообщение от Endenwer Посмотреть сообщение
Почему-то при вызове cursor.getString(cursor.getColumnIndex()) второй раз(получение text2) приложение вылетает. Не могу понять почему. Подскажите пожалуйста, что не так.
А "cursor.moveToNext()" один раз вызывается?

Должно быть что-то типа:
Java
1
2
3
4
5
6
7
8
if (cursor.moveToNext())
  {
  String text1 = cursor.getString(cursor.getColumnIndex("text1"));
  ((TextView) view.findViewById(R.id.text1)).setText(text1);
 
  String text2 = cursor.getString(cursor.getColumnIndex("text2"));
  ((TextView) view.findViewById(R.id.text2)).setText(text2);
  }
P.S. И надо читать логи у LogCat. Там должна быть инфа о сбое.
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
11.10.2013, 23:36  [ТС]     Выборка из базы случайной строки #9
А можете еще подсказать как выбрать из базы шесть случайных неповторяющихся элементов?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2013, 08:29     Выборка из базы случайной строки
Еще ссылки по теме:

Вывод случайной записи из файла на экран Android
Выборка с базы данных SQLite Android
Android Выборка данных за последние 24 часа SQLite
Парсинг JSON-строки и вывод данных из строки Android
Android SQLite и выборка по условию

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 415
12.10.2013, 08:29     Выборка из базы случайной строки #10
Цитата Сообщение от Endenwer Посмотреть сообщение
А можете еще подсказать как выбрать из базы шесть случайных неповторяющихся элементов?
А слово LIMIT вам ничего не подсказывает?
LIMIT 6

Добавлено через 8 минут
P.S. Только не забудьте изменить условие на цикл:
Java
1
while (cursor.moveToNext())
Yandex
Объявления
12.10.2013, 08:29     Выборка из базы случайной строки
Ответ Создать тему
Опции темы

Текущее время: 11:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru