Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Endenwer
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 86
1

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

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

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

Выборка из базы
Как выбрать из базы id той записи у которой в столбце5 самая низкое...

Выборка данных из Базы с условием
Есть в бд столбцы title , date, category. Необходимо достать все записи из...

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

Выборка строк из базы данных андроид
есть база данных по зарплат по месяцам, помогите сформировать запрос что бы...

Выборка данны определённной строки из базы
Здравствуйте. Не могу решить проблему как присвоить значения переменной из базы...

9
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 522
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 / 2
Регистрация: 24.08.2013
Сообщений: 522
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 / 2
Регистрация: 24.08.2013
Сообщений: 522
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 / 2
Регистрация: 24.08.2013
Сообщений: 522
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 / 2
Регистрация: 24.08.2013
Сообщений: 522
12.10.2013, 08:29 10
Цитата Сообщение от Endenwer Посмотреть сообщение
А можете еще подсказать как выбрать из базы шесть случайных неповторяющихся элементов?
А слово LIMIT вам ничего не подсказывает?
LIMIT 6

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

Выборка случайной записи
Помогите с SQL запросом на удаление ненужной записи. DELETE * FROM WHERE ID...

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

Выборка из базы
Нужно сделать так, что бы условие выборки менялось в зависимости от значения...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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