INSTR
Parte de la sección Más allá de lo básico del Journey de SQL de Coddy — lección 8 de 27.
INSTR(haystack, needle) devuelve la posición (basada en 1) de needle en haystack, o 0 si no se encuentra allí.
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0Combinado con SUBSTR es como se divide una cadena por un separador. Para extraer la parte anterior al @ en un correo electrónico:
SUBSTR(email, 1, INSTR(email, '@') - 1)Estás diciendo: toma el correo electrónico, empezando desde la posición 1, por tantos caracteres como haya antes del @.
Desafío
FácilTablas y columnas disponibles:
<strong>signups</strong>:<strong>id</strong>,<strong>email</strong>
Devuelve id y el dominio de cada correo electrónico (todo lo que esté después de @) como domain. Asume que cada correo electrónico contiene exactamente un @. Ordena por id.
Hoja de referencia
INSTR(haystack, needle) devuelve la posición (basada en 1) de needle en haystack, o 0 si no se encuentra:
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0Úselo con SUBSTR para dividir una cadena por un separador:
-- Parte antes de '@'
SUBSTR(email, 1, INSTR(email, '@') - 1)
-- Parte después de '@'
SUBSTR(email, INSTR(email, '@') + 1)Pruébalo tú mismo
SELECT id,
-- todo después de la '@'
FROM signups
ORDER BY id
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Más allá de lo básico
2Funciones de cadena
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE y TRIMConcatenación con ||Repaso - Facturas