powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Есть ли аналог ф-ции substring_index ?
5 сообщений из 5, страница 1 из 1
Есть ли аналог ф-ции substring_index ?
    #32603158
Alex Kab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
В MySQL есть ф-ция substring_index.
Как заменить ее в pgsql?
strpos не позволяет указывать позицию, с которой начинать искать, а надо определить вхождение третьего слэша.

Реальная задача - есть строка вида:
http://www.some.host.com/some/script.html
или
ftp://1.2.4.3/
или еще что-либо. Так вот, нужно выкусить строку по третий слэш, чтобы
получилось
http://www.some.host.com/

Можно ли встроенными стринговыми ф-циями это сделать?
...
Рейтинг: 0 / 0
Есть ли аналог ф-ции substring_index ?
    #32603243
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select
 substr(
  substr(
   'http://www.ru/news/index.html',
    2 +strpos(
    'http://www.ru/news/index.html',
    '/'
   )
  ),
   1 +strpos(
   substr(
    'http://www.ru/news/index.html',
     2 +strpos(
     'http://www.ru/news/index.html','/'
    )
   ),
   '/'
  )
 );

надеюсь, что есть способ лучше :-)
...
Рейтинг: 0 / 0
Есть ли аналог ф-ции substring_index ?
    #32603261
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select
 substr(
  'http://www.ru/news/index.html',
   0 ,
  length(
   substr(
    substr(
     'http://www.ru/news/index.html',
      2 +strpos(
      'http://www.ru/news/index.html',
      '/'
     )
    ),
     1 +strpos(
     substr(
      'http://www.ru/news/index.html',
       2 +strpos(
       'http://www.ru/news/index.html','/'
      )
     ),
     '/'
    )
   )
  )
 );

бр-р-р, предыдущее вырезало path, а вот это - host
...
Рейтинг: 0 / 0
Есть ли аналог ф-ции substring_index ?
    #32603293
Alex Kab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBat
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select
 substr(
  'http://www.ru/news/index.html',
   0 ,
  length(
   substr(
    substr(
     'http://www.ru/news/index.html',
      2 +strpos(
      'http://www.ru/news/index.html',
      '/'
     )
    ),
     1 +strpos(
     substr(
      'http://www.ru/news/index.html',
       2 +strpos(
       'http://www.ru/news/index.html','/'
      )
     ),
     '/'
    )
   )
  )
 );

бр-р-р, предыдущее вырезало path, а вот это - host

Ну, если http:// поменять на ftp:// к примеру, или на goopher:// ,
то не совсем корректно, но смысл понятен..
Спасибо.
...
Рейтинг: 0 / 0
Есть ли аналог ф-ции substring_index ?
    #32603320
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу, если http:// поменять на ftp:// к примеру, или на goopher:// , то не совсем корректно

Корректно!

--

Вот короче вариант:

Код: plaintext
1.
2.
select
 split_part('http://www.ru/news/index.html','/', 1 )||'//'||
 split_part('http://www.ru/news/index.html','/', 3 )||'/';
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Есть ли аналог ф-ции substring_index ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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