Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
1

Выбрать по несколько записей с каждым parrent_id

21.10.2012, 18:39. Показов 2071. Ответов 4
Метки нет (Все метки)

Допустим есть массив ID.
PHP
1
$id = array(1,2,3,4,5,6);
Запрос
SQL
1
SELECT * FROM `table` WHERE `parrent_id` IN (1,2,3,4,5,6);
вернёт все записи.
А запрос
SQL
1
SELECT * FROM `table` WHERE `parrent_id` IN (1,2,3,4,5,6) LIMIT 10;
Вернёт всего 10 записей, то есть может то будут записи только с parent_id = 1 или часть 1 а часть 2... ну вообщем вы поняли

Так вот как оптимальней выбрать разные записи, максимум по 10 штук. Ну то етсь что то типа
SQL
1
2
3
4
SELECT * FROM `table` WHERE `parent_id` = 1 LIMIT 10
UNION
SELECT * FROM `table` WHERE `parent_id` = 2 LIMIT 10
...
Есть более оптимальный способ? Тут то по сути будет все 6 запросов просто за 1 обращение к бд. А значит 6 раз поиск будет
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2012, 18:39
Ответы с готовыми решениями:

Выбрать несколько записей из таблицы
Есть массив с айдишниками из таблицы, как мне выбрать из таблицы записи с этими id? $arr=1 $arr=5...

Выбрать первые несколько записей без повторов
Здравствуйте, У меня есть таблица из нескольких столбцов. Там два столбца (Дата, Путь...

Как в выпадающем списке выбрать несколько записей
Всем привет! Необходимо сделать так, что бы при добавление в расписание занятия записи, я мог...

Delphi! ClientDataSet ФИЛЬТР!? как выбрать несколько записей по заданному фильтру (+код)?
procedure TForm1.TextTrayIcon1Click(Sender: TObject); begin clientDataSet1.Filter:='Name...

4
13201 / 6588 / 1040
Регистрация: 10.01.2008
Сообщений: 15,069
21.10.2012, 18:43 2
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Есть более оптимальный способ? Тут то по сути будет все 6 запросов просто за 1 обращение к бд. А значит 6 раз поиск будет
Не просто объяснить словами, но другие способы по сути к этому же и будут сводиться, если не будут сложнее.
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
21.10.2012, 18:46  [ТС] 3
Ну вообще id будет до 20 штук максимум думаю, а лимит из них может по 5. Мне бы что бы бд меньше тормозила на выборке, так как таблица не с одной сотней тысяч строк
0
13201 / 6588 / 1040
Регистрация: 10.01.2008
Сообщений: 15,069
21.10.2012, 18:51 4
DrobyshevAlex, Иднексируйте parent_id.

В любом случае запрос будет выполняться по меньшей мере с использованием временой таблицы. Усложнить и замедлить точно всегда можно. А вот ускорить в данном случае - вряд ли.
1
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
21.10.2012, 18:53  [ТС] 5
Ну он и так индексный.
Таблица фреймворком создаётся и индексе достаточно хорошо расставляет
Остановлюсь на таком варианте тогда.
0
21.10.2012, 18:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2012, 18:53

Как выбрать одну или несколько записей из одной таблицы и отобразить на другой форме в builder c++
как выбрать одну или несколько записей из одной таблицы и отобразить на другой форме в builder c++

Выбрать запись с каждым одним уникальным полем
Есть таблица с 3 колонками. Много записей. То есть изначально в базе есть записи где первые 2...

Выбрать из массива минимальный элемент, если таких несколько то выбрать все
Выбрать из массива минимальный элемент, если таких несколько то выбрать все

Файл: Создать Файл Записей, каждым компонентом которого будет матрица MxN действительных чисел.
Создать Файл Записей, каждым компонентом которого будет матрица MxN действительных чисел. Получить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru