Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 202
от 15.01.2007, 14:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 400, Экспертов: 41
В номере:Вопросов: 1, Ответов: 3


Вопрос № 70154: Здравствуйте! Помогите пожалуйста сделать таблицу. Вся заковырка заключается в оптимизации и выборке по первым буквам фамилии. Сейчас я не могу точно сказать, будет это 1-а, 2-е или 3 буквы. Наверное правильнее всего это сделать настраиваемы...

Вопрос № 70.154
Здравствуйте!

Помогите пожалуйста сделать таблицу. Вся заковырка заключается в оптимизации и выборке по первым буквам фамилии. Сейчас я не могу точно сказать, будет это 1-а, 2-е или 3 буквы. Наверное правильнее всего это сделать настраиваемым, причем не трогая структуры таблицы.

Так вот, как мне считать авторов только на определенные буквы? И как под это сделать таблицу?
У меня сделан столбец `litera`, в который предполагается писать первые 3 буквы фамилии, но может есть вариант по лучше?

И Как искать записи начинающиеся с символов, без полного совпадения строки?

Если нужна индексация, пожалуйста приведите примеры, я так и не понял как её делать.
предположительные столбцы:

id - ид записи
link - ссылка на оригинал
litera - первые буквы
first_name - имя
last_name - фамилия
number - дополнитеьный номер
Отправлен: 09.01.2007, 16:15
Вопрос задал: Талипов А Н (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Талипов А Н!
Поиск по частичному совпадению осуществляется так:

Select * from Table where last_name like "Аб%"

т.е. % заменяет произвольное количество символов.
Таким же образом можно осуществлять последовательный поиск, когда при каждой введенной букве заново строится запрос, который соответственно выдает меньшее количество записей.
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 09.01.2007, 16:25
Оценка за ответ: 5
Комментарий оценки:
Спасибо за объяснение.

Отвечает: Карпов Алексей
Здравствуйте, Талипов А Н!
В структуре ничего менять нет необходимости, в запросе укажите что-то вроде: last_name like @search. @search равен 'П%' или что вам необходимо.
Ответ отправил: Карпов Алексей (статус: 8-ой класс)
Ответ отправлен: 09.01.2007, 16:25
Оценка за ответ: 5

Отвечает: Загиров Рустам
Здравствуйте, Талипов А Н!
Зачем делать поле, хранящее первую букву, если её можно узнать средствами MySQL?
Вот запрос, позволяющий определить количество авторов на определённые буквы:
SELECT SUBSTRING(last_name,1,1) as first, COUNT(last_name) as count FROM avtori GROUP BY first
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 09.01.2007, 22:16


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.40 от 14.01.2007
Яндекс Rambler's Top100

В избранное