Главная Юзердоски Каталог Трекер NSFW Настройки

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 7 3 5
SQL Аноним 19/04/24 Птн 21:04:12 3129023 1
17020374280922.webm 5665Кб, 1280x720, 00:00:52
1280x720
Хелпаните по сиквель плиз. Есть запрос - SELECT * FROM `tablename` t where t.theme in @array LIMIT 3 . Выдаст три первые записи, айди которых есть в массиве. А мне нужно три по каждому ключу. Т.е. например, если в @array три элемента, то три выдаст по каждому, итого 9. Как вот так сделать?
Аноним 19/04/24 Птн 21:05:09 3129026 2
>>3129023 (OP)
быстрофикс - не айди которых есть в массиве, а theme. Ну или любая другая фигня в общем, что там может быть
Аноним 19/04/24 Птн 21:13:47 3129033 3
Аноним 19/04/24 Птн 21:15:45 3129037 4
>>3129033
не могли бы вы поточнее , мб на примере моего запроса? Я в sql то не шарю и для меня оконка с роу намбер звучит как рандомный набор слов)
Аноним 20/04/24 Суб 13:10:00 3129558 5
>>3129037
select ... from (
select ..., row_number() over (partition by theme order by id)...
)
where rn <= 3
Аноним 21/04/24 Вск 04:44:36 3130195 6
>>3129023 (OP)
типа это?

SELECT * FROM tablename WHERE theme = %L LIMIT 3
UNION ALL
Аноним 24/04/24 Срд 03:46:37 3133544 7
17122553711040.mp4 12176Кб, 1266x960, 00:00:10
1266x960
17122553946640.mp4 1656Кб, 1266x960, 00:00:10
1266x960
>>3129023 (OP)
https://dbfiddle.uk/DS7HJ_7X
UNNEST развернет выбранные темы в строки, а
LATERAL заджойнит к каждой строке результат подзапроса - по три строки на каждую тему.

Скорость запроса зависит только от количества выбранных тем, а не от размера таблицы как с row_number(). А выбрать столько тем чтобы этот запрос начал тормозить ты физически не сможешь - максимальной длины запроса не хватит.
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов