Автор Тема: Получение первой буквы  (Прочитано 5876 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
Получение первой буквы
« : 18 Января 2007, 11:09:19 »
Здравствуйте!

Есть таблица words , в ней одна из колонок word , в которой находятся термины. Нужно получить список первых букв, чтобы построить линейку (А Б ... Э Ю Я) из тех букв, где слова начинаются с определенной буквы.

Никак не получается с помощью запроса получить первую букву от слова.
select word from words group by 1  - это только слова, с отрезать букву не получается

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Получение первой буквы
« Ответ #1 : 18 Января 2007, 11:34:40 »
СУБД какая?

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
Получение первой буквы
« Ответ #2 : 18 Января 2007, 12:19:42 »
Mysql

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Получение первой буквы
« Ответ #3 : 18 Января 2007, 13:27:27 »
А посмотреть ман на предмет функций для работы со строками?
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
На Машине Тьюринга далеко не уедешь.

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Получение первой буквы
« Ответ #4 : 18 Января 2007, 13:52:10 »
Нечего заниматься этим. Просто выведи все буквы алфавита, есть ли термины на все буквы или нет.
Я бы не стал загружать БД ради этого... хотя...

Учебник SQL говорит, что выражение select может содержать кучу функций:
Цитировать
CONCAT()    Объединение строк.
INTERVAL(A,a,b,c,d)    Возвращает 1, если A == a, 2, если A == b... Если совпадений нет, вернет 0. A,a,b,c,d... строки.
INSERT(org,strt,len,new)    Заменяет подстроку org[strt...len(gth)] на new. Первая позиция строки=1.
LCASE(A)    Приводит A к нижнему регистру.
LEFT()    Возвращает строку символов, отсчитывая слева.
LENGTH()    Длина строки.
LOCATE(A,B)    Позиция подстроки B в строке A.
LOCATE(A,B,C)    Позиция подстроки B в строке A, начиная с позиции C.
LTRIM(str)    Удаляет все начальные пробелы из строки str.
REPLACE(A,B,C)    Заменяет все подстроки B в строке A на подстроку C.
RIGHT()    Get string counting from right.
RTRIM(str)    Удаляет хвостовые пробелы из строки str.
STRCMP()    Возвращает 0, если строки одинаковые.
SUBSTRING(A,B,C)    Возвращает подстроку из A, с позиции B до позиции C.
UCASE(A)    Переводит A в верхний регистр.


Следовательно возможен запрос
SELECT SUBSTRING(word,0,1) FROM table

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Получение первой буквы
« Ответ #5 : 18 Января 2007, 14:00:36 »
Цитировать
andymc:
Следовательно возможен запрос SELECT SUBSTRING(word,0,1) FROM table


Уточню и поправлю

SELECT
   DISTINCT SUBSTRING( word, 1, 1 ) AS letter
FROM
   words
ORDER BY
   letter

Где-то была такая тема, к сожалению не смог найти...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28