Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти позицию в строке по номеру вхождения / 8 сообщений из 8, страница 1 из 1
11.10.2016, 14:39
    #39324567
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти позицию в строке по номеру вхождения
Добрый день!

Функция instr() в MySql невыгодно отличается от аналогичной в Oracle.
Есть альтернатива? Надо найти, допустим, 2-е вхождение 'a' в строке 'авыфапро'
...
Рейтинг: 0 / 0
11.10.2016, 18:06
    #39324791
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти позицию в строке по номеру вхождения
Зачем искать само вхождение? Ну входит (и выходит), и что? Я бы ещё понял поиск его позиции, скажем...
...
Рейтинг: 0 / 0
11.10.2016, 19:48
    #39324838
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти позицию в строке по номеру вхождения
Мне надо строку распарсить вида (строки разные)

(_10_ + _20_) / 100 * _30_

Т.е. вытащить секции _число_ для дальнейшей обработки.
Я рассчитывал INSTR()-ом определить позицию по номеру вхождения '_' и потом SUBSTR-ом выдернуть.
В Оракле это делается на раз, а тут функцию кастрировали. :)
...
Рейтинг: 0 / 0
11.10.2016, 19:50
    #39324842
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти позицию в строке по номеру вхождения
SUBSTRING_INDEX дважды - внутри с заданным "номером", снаружи с -1.
...
Рейтинг: 0 / 0
11.10.2016, 20:02
    #39324849
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти позицию в строке по номеру вхождения
miv32В Оракле это делается на раз, а тут функцию кастрировали.
Хмм...

OracleThe SUBSTR functions return a portion of char, beginning at character position, substring_length characters long.
MySQLThe forms with a len argument return a substring len characters long from string str, starting at position pos.
И разница лишь в том, что Oracle разрешает отрицательное substring_length, а MySQL - отрицательное pos.
...
Рейтинг: 0 / 0
12.10.2016, 10:12
    #39325048
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти позицию в строке по номеру вхождения
Syntax MySql:
INSTR(str,substr)

Returns the position of the first occurrence of substring substr in
string str.


Syntax Oracle:
INSTR(string , substring [, position [, occurrence ] ])
Arguments

string is the text expression to search.

substring is the text string to search for.

position is a nonzero integer indicating the character in string where the function begins the search. When position is negative, then INSTR counts and searches backward from the end of string. The default value of position is 1, which means that the function begins searching at the first character of string.

occurrence is an integer indicating which occurrence of string the function should search for. The value of occurrence must be positive. The default values of occurrence is 1, meaning the function searches for the first occurrence of substring.
...
Рейтинг: 0 / 0
12.10.2016, 18:56
    #39325614
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти позицию в строке по номеру вхождения
miv32Syntax MySql:
INSTR(str,substr)Официальная документация считает иначе. См. http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substr

miv32Syntax Oracle:
INSTR(string , substring [, position [, occurrence ] ])
И снова официальная документация считает иначе. См. https://docs.oracle.com/database/121/SQLRF/functions196.htm#SQLRF06114
...
Рейтинг: 0 / 0
12.10.2016, 19:10
    #39325630
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Найти позицию в строке по номеру вхождения
Найдите тогда INSTR() в 'asdfgasdawer' позицию 2-го вхождения 'a'
ссылка в предыдущем на SUBSTR :)

INSTR: https://docs.oracle.com/database/121/SQLRF/functions089.htm#SQLRF00651
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти позицию в строке по номеру вхождения / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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