SQL запрос

Статус
В этой теме нельзя размещать новые ответы.

terkin

Мой дом здесь!
Регистрация
9 Дек 2006
Сообщения
513
Реакции
200
В базе есть столбец domain, в нём список доменов, мне нужно сделать выборку с сортировкой по зоне домена - тоесть com, ru, я вот не помню строчных ф-ций SQL, помогите
 
А что за SQL сервер? MySQL?
Код:
SELECT * FROM my_table t
ORDER BY RIGHT(t.domain,2), RIGHT(t.domain,3), RIGHT(t.domain,4), RIGHT(t.domain,5)
Это простой скрипт, без поиска последней точки в поле omain. Сортировка исключительно по буквам справа налево до 5 символов. Результат может быть неожиданным. В идеале, я бы посоветовал при вставке в эту таблицу выдирать зону и записывать ее в отдельное поле. Таким образом можно будет сэкономить значительное время на выполнения вашего запроса, который будет выглядеть так в таком случае:
Код:
SELECT * FROM my_table
ORDER BY zone_index
 
Спасибо первый вариант подошёл, можно было бы да при вбивке отдельно в поле но просто работаю уже с готовой базой.
 
PHP:
"SELECT * FROM table WHERE domain like %.ru%"

Вот так, например, можно попробывать. Однако - обломов может больше чем в предложенном выше варианте :)
 
Если объем таблицы не особо большой, то можно выбрать все данные в массив и организовать сортировку средствами php (если конечно используется php).
 
Еще вариант для ускорения:
в существующую таблицу добавить int поле, которое будет ключем доменных зон, а сами ключи считать отдельной програмкой, которую можно в крон запихнуть или на функциях (триггерах) написать если версия MySQL позволяет.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху