Добавьте дополнительный индекс для выбора запроса и получения результата, используя идентификатор, превышающий идентификатор индекса

#mysql

Вопрос:

У меня есть таблица, в которой прямо сейчас я получаю результат, добавляя дополнительный индекс, но я хочу получить результат, используя оператор больше, чем для дополнительного идентификатора индекса

Этот запрос дает мне следующее

 SET @a:=0; 
SELECT @a:=@a 1 additional_id, output.*
FROM (SELECT sum(item_sale    item_viewed) as totalSum ,item_id FROM items WHERE item_active='1' GROUP BY item_id order by totalSum desc ) output
 
дополнительный идентификатор item_id Итого
1 3 17
2 1 5
3 2 2

Но я хочу использовать больше, чем оператор, и хочу получить такой результат, если additional_id > 1, то найдите только 2 результата

дополнительный идентификатор item_id Итого
2 1 5
3 2 2

Как я мог этого достичь ?

Комментарии:

1. Вы ищете второго и третьего бестселлера?

2. На какой версии mysql вы работаете?

3. Используйте свой запрос в качестве подзапроса, применяйте его в соответствии с ТЕМ, где во внешнем запросе.

4. Да, я использую функцию загрузки больше, и найти бестселлера теперь немного сложно для меня, потому что, если выборка только по основному идентификатору очень проста, но поиск бестселлеров затруднен. Итак, я добавил дополнительный индекс , но я не понимаю, как получить результат с помощью additional_id

5. @P. Salmon , версия MySQL 5.7.28, а PHP 7.40

Ответ №1:

 SELECT * 
FROM (

-- your query
SELECT @a:=@a 1 additional_id, output.*
FROM (SELECT sum(item_sale    item_viewed) as totalSum ,item_id FROM items WHERE item_active='1' GROUP BY item_id order by totalSum desc ) output
-- end of your query

CROSS JOIN (SELECT @a:=0) init_variable
) AS subquery
WHERE additional_id > 1