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

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

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

Выборка из базы случайной строки - Программирование Android

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

Подскажите пожалуйста, как выбрать из базы, имеющей три столбца(id, text1, text2), случайную строку по id. А потом из этой строки поле text1 и text2 поместить в двумерный массив.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 19:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выборка из базы случайной строки (Программирование Android):

Выборка из базы - Программирование Android
Как выбрать из базы id той записи у которой в столбце5 самая низкое (наименьшее) значение ????

Выборка данных из Базы с условием - Программирование Android
Есть в бд столбцы title , date, category. Необходимо достать все записи из колонки "title" при условии что "date" равно "2013-06-14", а...

Выборка с базы данных SQLite - Программирование Android
Доброго времени суток ребята. Занимаюсь простым приложением, что-то типа заметок. Вот случилась незадача с работой SQLite. База...

Выборка данны определённной строки из базы - C++ Qt
Здравствуйте. Не могу решить проблему как присвоить значения переменной из базы данных. QSqlRecord rec = query.record(); int...

выборка случайной записи - MySQL
Как вывести одну случайную запись из столбца name? select name from tabl1 Заранее спасибо

Выборка случайной записи - MS Access
Помогите с SQL запросом на удаление ненужной записи. DELETE * FROM WHERE ID NOT IN ( SELECT First(ID) FROM GROUP BY , )...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 426
08.10.2013, 21:48 #2
MySQL
1
2
3
SELECT _id FROM products
ORDER BY RANDOM()
LIMIT 1
1
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
09.10.2013, 10:56  [ТС] #3
Подойдет. Только вот я хотел узнать как именно это реализовать. Я достаю строку из базы данных. Как мне достать нужные столбцы?
0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 426
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
1
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
09.10.2013, 12:21  [ТС] #5
Да, мне нужно узнать как доставать столбцы и Cursor.
0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 426
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();
1
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
10.10.2013, 22:04  [ТС] #7
Почему-то при вызове cursor.getString(cursor.getColumnIndex()) второй раз(получение text2) приложение вылетает. Не могу понять почему. Подскажите пожалуйста, что не так.
0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 426
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. Там должна быть инфа о сбое.
2
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
11.10.2013, 23:36  [ТС] #9
А можете еще подсказать как выбрать из базы шесть случайных неповторяющихся элементов?
0
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 426
12.10.2013, 08:29 #10
Цитата Сообщение от Endenwer Посмотреть сообщение
А можете еще подсказать как выбрать из базы шесть случайных неповторяющихся элементов?
А слово LIMIT вам ничего не подсказывает?
LIMIT 6

Добавлено через 8 минут
P.S. Только не забудьте изменить условие на цикл:
Java
1
while (cursor.moveToNext())
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2013, 08:29
Привет! Вот еще темы с ответами:

Выборка из базы - PHP БД
Нужна помощь выборке из бд данных за определенный промежуток дат, в формате ...от и до...

Выборка с базы - SQL Server
Привет всем! Нужно сделать выборку с базы вида: ,,,,,,, входные параметры: id населенного пункта, id улицы, id дома, id услуги. ...

Выборка из базы - PHP БД
Пишу что-то вроде тестирования для студентов. Студент заходит на главную страницу и указывает свои данные и выбирает указанную тему,...

Выборка из базы - SQL Server
Есть таблица: в ней код и имя. Но у одного кода могут быть разные имена: 12345 - name1 12345 - name2 12345 - name3 Мне нужно...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.10.2013, 08:29
Ответ Создать тему
Опции темы

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