powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывод алфавита
7 сообщений из 7, страница 1 из 1
Вывод алфавита
    #32799684
Wasap!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица с текстовам полем
Надо сделать вывод такого типа
А
АFsfsfsdfsdfsdf
Аsfgsfsdfsdfsdf
Аsdfsdfsdfsdf
B
Bsdfsdfsd
Bsdfsdfsdf
Bsdfsdf
C
Cfjjy
Cdfgdfg

Как можно запросом сформировать алфавит только из тех букв на которые начинается текстовое содержимое?
А потом (это уже проще) вывести под каждой буквой список заголовков соответственно начинающихсяся с неё?
Надо реализоват на MySQL+PHP
...
Рейтинг: 0 / 0
Вывод алфавита
    #32799738
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если прям обязательно что-б БД вернула такой список - это геморрно и в одном запросе не решить.

А советую просто перед выводом (в PHP) сравнивать, на какую букву начинается текущая запись и на какую букву начиналась предыдущая. Соответственно если не совпадают - отбить (вывести букву), если совпадают просто вывести строчку.
И естественно предварительно отсортировать запрос по этому текстовому полю, что-бы записи шли в порядке возрастания первой буквы.

Что каксается варианта возврата из базы, если еще нужен - пиши, расскажу как делать!

Код: plaintext
mahoune
...
Рейтинг: 0 / 0
Вывод алфавита
    #32799775
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помню, как в MySQL (давно не работал), но в Oracle так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT DISTINCT(SUBSTR(ba_name,  1 ,  1 ))
FROM bank

UNION ALL

SELECT ba_name
FROM bank

ORDER BY  1 
...
Рейтинг: 0 / 0
Вывод алфавита
    #32799809
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и так но:

во-первых, если записей много, первый запрос может долго выполнятся, хотя с индексами может и быстро!

во-вторых: практически невозможно будет подсветить новую букву, т.к. и в БД может встречаться название из дной буквы!

Но предложенный скрипт можно немного поменять:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT DISTINCT(SUBSTR(ba_name,  1 ,  1 )) AS ba_name,  1  AS ba_idx
FROM bank

UNION ALL

SELECT ba_name,  2  AS ba_idx
FROM bank

ORDER BY ba_name

Ну и соответственно ориентируясь на поле ba_idx при подсветке.
Если в этом поле 1 - подсвечивать, 0 - не подсвечивать!

Код: plaintext
mahoune
...
Рейтинг: 0 / 0
Вывод алфавита
    #32799813
wasap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно допустим я сформирую алфавит с помощью PHP.
Тогда как задать условие в запросе чтобы выбирались все записи с определённой буквы?
...
Рейтинг: 0 / 0
Вывод алфавита
    #32799827
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
SELECT ba_name
FROM bank
WHERE
LEFT(ba_name, 1 )=%SearchLetter%
Код: plaintext
mahoune
...
Рейтинг: 0 / 0
Вывод алфавита
    #32799849
wasap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо.
Очень много чево можно реализовать с помощью только SQL надо получше изучить синтаксис.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывод алфавита
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]