Допустим, есть таблица книжных полок, на которых стоят книги:
CREATE TABLE `bookshelf` (
`bookshelf_id` VARCHAR(10) NOT NULL,
`book_name` VARCHAR(512) NOT NULL,
`book_id` VARCHAR(10) NOT NULL,
PRIMARY KEY (`bookshelf_id`, `book_name`(128), `book_id`)
);
Мне нужно получить пагинацию, в порядке, заданном PRIMARY KEY.
EXPLAIN SELECT * FROM `bookshelf` ORDER BY `bookshelf_id` LIMIT 5;
говорит, что будет использован PRIMARY KEY и просмотрено 5 записей, но понятно, что книги то отсортированы не будут.
EXPLAIN SELECT * FROM `bookshelf` ORDER BY `bookshelf_id`, `book_name` LIMIT 5;
говорит, что будет просматривать всю таблицу.
Как же сделать так, чтобы БД сортировала только по части поля `book_name` в соответствии с PRIMARY KEY?