Есть ли лучший способ создать алфавитный индекс разбивки на страницы в PHP / MySQL?

Одно из моих стандартных действий для разбивки на страницы в моих CMS - показывать алфавитную панель быстрого доступа при сортировке по альфа-столбцу. Например, если результаты сортируются по фамилии, под разбивкой на страницы я вывожу серию ссылок от A до Z, чтобы перейти прямо на страницу для определенного первого символа.

Пример:

В настоящее время я Я делаю это, получая все результаты для этого столбца, отсортированные в алфавитном порядке, а затем просматривая их все в цикле в PHP и записывая, на какой странице появляется запись. Это отлично работает, когда вы имеете дело только с несколькими сотнями результатов, но сейчас я работаю над проектом, который потенциально может иметь несколько сотен тысяч строк, и это просто не жизнеспособный вариант.

Есть ли более эффективный метод создания такого индекса? Обратите внимание, что он также должен обрабатывать не только A – Z, поскольку строки могут начинаться с цифр или знаков препинания.

Отредактируйте для пояснения : Я не ищу простой список всех первых персонажей, это просто. Мне нужно вычислить, на какой странице общих результатов будет поле, начинающееся с этого символа. Допустим, мы ищем кого-то по имени Уолтер, и у меня 1000 строк, мне нужно знать, где в этом диапазоне 1–1000 начинается буква W.

7
задан ChiperSoft 5 July 2011 в 20:40
поделиться