Menu
Coddy logo textTech

INSTR

Fait partie de la section Au-delà des bases du Journey SQL de Coddy — leçon 8 sur 27.

INSTR(haystack, needle) retourne la position (indexée à partir de 1) de needle dans haystack, ou 0 si elle n'y figure pas.

INSTR('alice@example.com', '@')   -- 6
INSTR('hello', 'z')               -- 0

Combiné avec SUBSTR, c'est ainsi que vous divisez une chaîne de caractères sur un séparateur. Pour extraire la partie avant le @ dans un e-mail :

SUBSTR(email, 1, INSTR(email, '@') - 1)

Vous dites : prenez l'e-mail, en commençant à la position 1, pour autant de caractères qu'il y en a avant le @.

challenge icon

Défi

Facile

Tables et colonnes disponibles :

  • <strong>signups</strong> : <strong>id</strong>, <strong>email</strong>

Retournez id et le domaine de chaque e-mail (tout ce qui se trouve après le @) en tant que domain. Supposez que chaque e-mail contient exactement un @. Triez par id.

Aide-mémoire

INSTR(haystack, needle) retourne la position (indexée à partir de 1) de needle dans haystack, ou 0 s'il n'est pas trouvé :

INSTR('alice@example.com', '@')   -- 6
INSTR('hello', 'z')               -- 0

À utiliser avec SUBSTR pour diviser une chaîne de caractères sur un séparateur :

-- Partie avant '@'
SUBSTR(email, 1, INSTR(email, '@') - 1)

-- Partie après '@'
SUBSTR(email, INSTR(email, '@') + 1)

Essayez vous-même

SELECT id,
       -- tout ce qui suit le '@'
FROM signups
ORDER BY id
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Au-delà des bases