Выборка части поля для заполнения другой таблицы

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

latteo

Эффективное использование PHP, MySQL
Регистрация
27 Фев 2008
Сообщения
1.603
Реакции
1.565
База MySQL
Есть таблица с доменными именами. Можно ли составить таблицу, которая будет содержать часть доменного имени до конца поля после последней точки.
Например:
исходная таблица
Код:
1	test.RU
2	site.RU
3	[url]www.com.RU[/url]
4	some.COM
результирующая
Код:
1	RU
2	RU
3	RU
4	COM
 
Делаешь запрос к таблице, получаешь значение поля, обрабатываешь, примерно так
PHP:
$p = str_replace(".","",strrchr( "some.COM", "."));
Далее запрос на запись в другую таблицу, потом проверка записи.
Все в цикле.
 
А так же можно сделать дамп и произвести необходимые замены с помошью PHP или notepad++, или любых других инструментов коих море.
Но вопрос задан в разделе Базы Данных не просто так...
Мне интересно можно ли это сделать с помощью SQL.
 
можно с текстовыми функциями, если название поля site то
Код:
SELECT REVERSE(LEFT(REVERSE(site),LOCATE('.',REVERSE(site)) - 1)) AS domain FROM site_table
чтоб только заглавными добавить UPPER
Код:
SELECT UPPER(REVERSE(LEFT(REVERSE(site),LOCATE('.',REVERSE(site)) - 1))) AS domain FROM site_table
Подсчитать сколько
Код:
SELECT COUNT(*), REVERSE(LEFT(REVERSE(site),LOCATE('.',REVERSE(site)) - 1)) AS domain FROM site_table GROUP BY domain
или просто без повторов
Код:
SELECT DISTINCT REVERSE(LEFT(REVERSE(site),LOCATE('.',REVERSE(site)) - 1)) AS domain FROM site_table
фильтровать например через REGEXP
Код:
SELECT site, REVERSE(LEFT(REVERSE(site),LOCATE('.',REVERSE(site)) - 1)) AS domain FROM site_table WHERE site REGEXP '\.ru$';
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху