INSTR
Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy — Lektion 8 von 27.
INSTR(haystack, needle) gibt die 1-basierte Position von needle in haystack zurück, oder 0, wenn es nicht vorhanden ist.
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0Kombiniert mit SUBSTR lässt sich so eine Zeichenfolge an einem Trennzeichen aufteilen. Um den Teil vor dem @ in einer E-Mail zu extrahieren:
SUBSTR(email, 1, INSTR(email, '@') - 1)Sie sagen: Nehmen Sie die E-Mail, beginnend bei Position 1, für so viele Zeichen, wie vor dem @ stehen.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
<strong>signups</strong>:<strong>id</strong>,<strong>email</strong>
Gib die id und die domain jeder E-Mail (alles nach dem @) als domain zurück. Gehe davon aus, dass jede E-Mail genau ein @ enthält. Sortiere nach id.
Spickzettel
INSTR(haystack, needle) gibt die 1-basierte Position von needle in haystack zurück, oder 0, falls sie nicht gefunden wird:
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0Verwenden Sie dies mit SUBSTR, um einen String an einem Trennzeichen zu teilen:
-- Teil vor '@'
SUBSTR(email, 1, INSTR(email, '@') - 1)
-- Teil nach '@'
SUBSTR(email, INSTR(email, '@') + 1)Probier es selbst
SELECT id,
-- alles nach dem '@'
FROM signups
ORDER BY id
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.