Forum Webscript.Ru
Общие => Базы данных => Тема начата: yennifer от 19 Сентября 2002, 16:06:47
-
помогите плз разобраться - у меня уже все идеи кончились :(
вообщем есть таблица, из нее нужно выбрать строки так, чтобы в текстовом поле name полученной таблицы не было значений, которые бы начинались на одну и ту же букву.
ну и сортировались по алфавиту, но это просто.
главное - как сделать такую выборку???
-
SELECT DISTINCT(SUBSTRING(name, 1, 1)) as letter FROM your_table ORDER BY letter
-
Погодь....
Вродь не то.
Может так надо:
Если в базе лежат 2 или более слов, начинающихся на 1 букву, то их печатать не надо, иначе печетаем.
Если задача такова, то так
SELECT count(*) as l_count, SUBSTRING(name, 1, 1) as letter FROM your_table GROUP BY letter HAVING l_count<2 ORDER BY letter
Как видишь - элементарно.... :-)
-
не, SELECT DISTINCT(SUBSTRING(name, 1, 1)) as letter FROM your_table ORDER BY letter очень хорошо подошел :)
огромное спасибо :)
-
кстати еще вопрос, а почему обратный запрос работать не хочет?
SELECT * FROM your_table where DISTInCT(SUBSTRING(name, 1, 1))=\'$letter\' ???
-
а почему обратный запрос работать не хочет
А чё сделать-то(выбрать) надо?
....
Так юзни
SELECT * FROM your_table where SUBSTRING(name, 1, 1)=\'$letter\'
-
обратный запрос работать не хочет
Потому что DISTINCT используется только после SELECT и до FROM