@mayIsmile

Как реализовать GROUP LIMIT в MySQL?

Есть InnoDB таблица, в которой 1.5 миллиона записей (кол-во записей периодически возрастает на 100-200к).

Поля таблицы: id, code, base_id, block_id

Каждая запись может иметь одинаковый code к примеру

id, code, base_id, block_id
1, 123456, 12, 2456
2, 123456, 39, 0920
3, 123456, 90, 8109
4, 678901, 38, 0900
5, 678901, 24, 3209
6, 123456, 39, 1452
5, 678901, 27, 1109

Подскажите, пожалуйста, как можно одним или несколькими запросамм сделать следующие выборки:

1. Вывести по 3 записи с code 123456, и 2 записи с code 678901
2. Тоже самое что и №1, но с заданным base_id
3. Тоже самое что и №2, но с заданным block_id

Кол-во записей с одинаковым code может быть очень много
  • Вопрос задан
  • 2594 просмотра
Решения вопроса 1
SELECT id, code, base_id, block_id FROM Table 
	WHERE code=123456 AND base_id=??????? AND block_id=?????? LIMIT 0,3
UNION ALL
SELECT id, code, base_id, block_id FROM Table LIMIT 0,2
	WHERE code=678901 AND base_id=??????? AND block_id=?????? LIMIT 0,2


Возможно поможет!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
street
@street
Backend developer
В голову приходит только метод с использованием переменных, если интересует вывод одним MySQL запросом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы