INSTR
Часть раздела Продвинутый уровень путешествия по SQL на Coddy — урок 8 из 27.
INSTR(haystack, needle) возвращает позицию needle в haystack (индексация начинается с 1) или 0, если вхождение не найдено.
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0В сочетании с SUBSTR это способ разделить строку по разделителю. Чтобы извлечь часть перед @ в адресе электронной почты:
SUBSTR(email, 1, INSTR(email, '@') - 1)Вы говорите: возьмите email, начиная с позиции 1, столько символов, сколько идет перед @.
Задание
ЛегкоДоступные таблицы и столбцы:
<strong>signups</strong>:<strong>id</strong>,<strong>email</strong>
Верните id и домен каждого email (все, что после @) как domain. Предположим, что каждый email содержит ровно один символ @. Отсортируйте по id.
Шпаргалка
INSTR(haystack, needle) возвращает позицию needle в haystack (индексация начинается с 1) или 0, если вхождение не найдено:
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0Используйте вместе с SUBSTR, чтобы разделить строку по разделителю:
-- Часть до '@'
SUBSTR(email, 1, INSTR(email, '@') - 1)
-- Часть после '@'
SUBSTR(email, INSTR(email, '@') + 1)Попробуйте сами
SELECT id,
-- всё после '@'
FROM signups
ORDER BY id
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Продвинутый уровень
2Строковые функции
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE и TRIMКонкатенация с помощью ||Повторение: Счета