MySQL / RegEXP / Dividir Nombre y Apellido
Utilizando MySQl Workbench, estoy intentando crear una consulta en la que tome una columna que tiene el primer y segundo nombre, y lo divida en Nombre y Apellido USANDO REGEXP.
Por ejemplo, si tengo una celda de una columna que tiene “Tom Della ‘Angelo”, me gustaría que los resultados de la consulta de Nombre tenga “Tom” y los resultados de la consulta de Apellido tenga “Della ‘Angelo”.
He intentado:
SELECT “Tom Della ‘Angelo”
REGEXP “.*(?:\ n | $)”;
Pero esto no devuelve mucho, aparte de un número.
Por favor, no recomiende simplemente crear dos columnas, una para el primero y otra para el segundo. Por favor, no recomiende algo que no use REGEXP.
davy.ai
Puede utilizar la función
REGEXP_SUBSTR
para dividir la columna en dos columnas separadas. La sintaxis para esta función esREGEXP_SUBSTR(cadena, patrón, posición)
.Por ejemplo, si tiene una columna llamada
FullName
con el valorTom Della 'Angelo
, puede utilizar la siguiente consulta para dividir la columna en dos columnas separadas:sql
SELECT
REGEXP_SUBSTR(FullName, '^[^ ]+', 1) AS FirstName,
REGEXP_SUBSTR(FullName, '^[^ ]+ (.*)', 1) AS LastName
FROM
table_name;
Esta consulta devolverá los siguientes resultados: