Menu
Coddy logo textTech

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, столько символов, сколько идет перед @.

challenge icon

Задание

Легко

Доступные таблицы и столбцы:

  • <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
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Продвинутый уровень