алфавит и выборка по букве

Духовность™

Продвинутый новичок
алфавит и выборка по букве

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

Сделал для начала индекс длинною в 1 символ на поле "имя человека"

Пытался как-то так делать:

[sql]SELECT 1 AS val FROM article WHERE LEFT(article_source, 1) = "Б" LIMIT 0, 1[/sql]

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

zerkms

TDD infected
Команда форума
1. LIKE `article_source` LIKE 'Б%' (на поле индекс, соответственно)
2. денормализовать, добавлением отдельного поля с буквой
 

Духовность™

Продвинутый новичок
денормализовать, добавлением отдельного поля с буквой
времени не остается. так получается, что сроки и менеджеры вынуждают писать говнокод.

Спасибо. это лучше, чем left?

-~{}~ 07.07.09 15:57:

на поле индекс, соответственно
в этом случае длинною в 1 символ хватит?
 

zerkms

TDD infected
Команда форума
Спасибо. это лучше, чем left?
да
в этом случае длинною в 1 символ хватит?
я не уверен, но мне кажется, что "символ" там эквивалентен однобайтовому знаку. т.е. для утф придётся взять минимум 2 (но я не уверен)
 

Gas

может по одной?
http://dev.mysql.com/doc/refman/5.0/en/create-index.html
символы, не байты (если не бинарное поле)

-~{}~ 07.07.09 15:35:

Спасибо. это лучше, чем left?
triumvirat, ты ж не новичёк в этом деле, explain'ом пользуйся он покажет что лучше, в mysql'е планы не такие сложные как в pg чтоб быстро не разобраться.
 
Сверху