Поэтому у меня есть столбец, который возвращает строку, которая выглядит так:
part1 > part2 > part3
Я хочу, чтобы иметь возможность возвращать только часть 2, когда я выбираю эту строку, но я не могу понять, как это сделать. Самое близкое, что я получил, - это выражение:
SELECT
SUBSTRING(column_name, INSTR(column_name, ">") +2)
FROM
table;
Что возвращает part2 > part3
.
Я изучил использование RegEx, но на самом деле я не уверен в этом, и я, похоже, не могу оборачивать голову тем, как я буду строить это утверждение... Если бы кто-нибудь мог дать мне несколько указателей, это было бы очень полезно :)
Используйте функцию Trim() вместе с Substring_Index():
SELECT TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, " > ", 2), " > ", -1))
FROM table
Подробности:
Substring_Index
:Возвращает подстроку из строки str перед подсчетом вхождения разделителя delim. Если счетчик положителен, возвращается все слева от конечного разделителя (считая слева). Если счетчик отрицательный, возвращается все, что находится справа от конечного разделителя (считая справа). SUBSTRING_INDEX() выполняет зависящее от регистра совпадение при поиске разделителя.
" > "
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, ">" ,2), ">", -1)
mysql имеет очень полезную функцию SUBSTRING_INDEX, которая получает строку только до определенной подстроки или символа. он также позволяет вам вернуться назад с конца строки, используя отрицательное число. также, обратите внимание, что если вы хотите TRIM пробелы вокруг ">" (как подсказывает кто-то другой), вы можете использовать ">" вместо ">",