Похоже, здесь происходит то, что сначала ваша последовательность генерируется в наборе результатов, а затем вы ограничиваете до 10 записей в зависимости от порядка. То, что у вас осталось, не обязательно является последовательностью от 1 до 10. Лучшим решением здесь может быть использование ROW_NUMBER
, если вы используете MySQL 8+. Если вы должны придерживаться вашего текущего подхода, перед генерацией последовательности оберните подзапрос:
SELECT id, title, @natusort:=@natusort + 1 AS ordercount
FROM
(
SELECT id, title
FROM categories
INNER JOIN table1 ON id = table1.parentid
ORDER BY title
LIMIT 10
) t
ORDER BY title;
Для параметра ROW_NUMBER
просто измените свой выбор на:
SELECT id, title, ROW_NUMBER() OVER (ORDER BY title) AS ordercount
FROM categories
...