Separar nombre y apellidos en una consulta mysql
-
- Posts: 121
- Joined: Fri Feb 15, 2019 1:37 pm
- Location: Aracataca-Colombia
Separar nombre y apellidos en una consulta mysql
Hola amigos del forum
Como hago una consulta mysql para separar el nombre, primer apellido y segund apellido.
adolfredo martinez fernandez:
adolfredo
martinez
fernandez
Quedo a la espera de cualquier colaboracion.
adolfredo
Como hago una consulta mysql para separar el nombre, primer apellido y segund apellido.
adolfredo martinez fernandez:
adolfredo
martinez
fernandez
Quedo a la espera de cualquier colaboracion.
adolfredo
Re: Separar nombre y apellidos en una consulta mysql
Adolfrfedo, gusto saber de tí:
Aunque no es la solución definitiva, te sugiero le tires una mirada a la función SUBSTRIN_INDEX() o
a la sunción SUBSTRING() apoyada por la función nAt()
Digo que no es una solución definitiva porque el problema será cuando el nombre o apellido sea compuesto,
por ejemplo Luis San Juan Pérez, Diego De Cosío Martínez
Saludos
Aunque no es la solución definitiva, te sugiero le tires una mirada a la función SUBSTRIN_INDEX() o
a la sunción SUBSTRING() apoyada por la función nAt()
Digo que no es una solución definitiva porque el problema será cuando el nombre o apellido sea compuesto,
por ejemplo Luis San Juan Pérez, Diego De Cosío Martínez
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Separar nombre y apellidos en una consulta mysql
Si te aseguras que siempre tiene al menos 3 nombres puedes hacer:
Code: Select all | Expand
//Soponiendo que el campo donde esta todo se llama nombre
// Y que esta martinez fernandez martinez adolfredo
oServer:Query("SELECT SUBSTRING_INDEX(nombre, ' ', 1) AS apellido, SUBSTRING_INDEX(SUBSTRING_INDEX(nombre, ' ', 2), ' ', -1) AS apellido_materno, "+;
"SUBSTRING_INDEX(nombre, ' ', -1) AS nombres FROM personas")
Re: Separar nombre y apellidos en una consulta mysql
Algo asi, Armando?
https://es.stackoverflow.com/questions/ ... dos-en-sql
https://es.stackoverflow.com/questions/ ... -substring
Regards, saludos.
https://es.stackoverflow.com/questions/ ... dos-en-sql
https://es.stackoverflow.com/questions/ ... -substring
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Separar nombre y apellidos en una consulta mysql
Lo mejor para mi,
crear campos separados
PATERNO
MATERNO
NOMBRE
crear campos separados
PATERNO
MATERNO
NOMBRE
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
- JoseAlvarez
- Posts: 807
- Joined: Sun Nov 09, 2014 5:01 pm
Re: Separar nombre y apellidos en una consulta mysql
Si te aseguras de separar los nombres de los apellidos con una coma, por ejemplo: Martinez Fernandez, adolfredo puedes aplicar con más certeza las sugerencias de los colegas. Yo añadiria una validación para eliminar posible dobles espacios entre nombres o apellidos. Lo haces con una sola instruccion "strtran".Adolfredo Martinez wrote:Hola amigos del forum
Como hago una consulta mysql para separar el nombre, primer apellido y segund apellido.
adolfredo martinez fernandez:
adolfredo
martinez
fernandez
Quedo a la espera de cualquier colaboracion.
adolfredo
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
-
- Posts: 121
- Joined: Fri Feb 15, 2019 1:37 pm
- Location: Aracataca-Colombia
Re: Separar nombre y apellidos en una consulta mysql
Gracias amigos.
Con el ejemplo de Cesar me funciono, pero la pagina que medio Karina, este ejemplo:
SELECT contrib.propieta,
SUBSTRING(contrib.propieta, 1, LOCATE(' ', contrib.propieta) - 1) AS primer_apellido,
SUBSTRING(contrib.propieta, LOCATE(' ', contrib.propieta) + 1, LOCATE(' ', contrib.propieta) + 1 ) AS segundo_apellido,
SUBSTRING(contrib.propieta,LOCATE(' ', contrib.propieta, LOCATE(' ', contrib.propieta) +1)) AS nombre
FROM contrib
Este link que medio Karina
https://es.stackoverflow.com/questions/ ... -substring
Gracias por estar siempre ahi.
Con el ejemplo de Cesar me funciono, pero la pagina que medio Karina, este ejemplo:
SELECT contrib.propieta,
SUBSTRING(contrib.propieta, 1, LOCATE(' ', contrib.propieta) - 1) AS primer_apellido,
SUBSTRING(contrib.propieta, LOCATE(' ', contrib.propieta) + 1, LOCATE(' ', contrib.propieta) + 1 ) AS segundo_apellido,
SUBSTRING(contrib.propieta,LOCATE(' ', contrib.propieta, LOCATE(' ', contrib.propieta) +1)) AS nombre
FROM contrib
Este link que medio Karina
https://es.stackoverflow.com/questions/ ... -substring
Gracias por estar siempre ahi.
Re: Separar nombre y apellidos en una consulta mysql
Adolfredo:
Sin pretender demeritar, pero mira la separación para CERVANTES SALAS MARELVIS ISABEL
me parece que no es del todo correcta. Desde luego es un gran paso.
Lo recomendable es lo que aconseja mi paisano César, en este caso es más fácil unir que separar.
Saludos
Sin pretender demeritar, pero mira la separación para CERVANTES SALAS MARELVIS ISABEL
me parece que no es del todo correcta. Desde luego es un gran paso.
Lo recomendable es lo que aconseja mi paisano César, en este caso es más fácil unir que separar.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
-
- Posts: 121
- Joined: Fri Feb 15, 2019 1:37 pm
- Location: Aracataca-Colombia
Re: Separar nombre y apellidos en una consulta mysql
Asi es Armando, en el segundo apellido, en la mayoria de _, se van letras del nombre.
- JoseAlvarez
- Posts: 807
- Joined: Sun Nov 09, 2014 5:01 pm
Re: Separar nombre y apellidos en una consulta mysql
Prueba como se comportaría con el siguiente caso:
María de los Angeles Montes de Oca Del Castillo.
Yo lo haría con campos separados.
Hace poco hice una base de datos (crud) a una iglesia. Debia registar los nombres de todos los niños bautizados desde años atrás... hay cada nombre...
María de los Angeles Montes de Oca Del Castillo.
Yo lo haría con campos separados.
Hace poco hice una base de datos (crud) a una iglesia. Debia registar los nombres de todos los niños bautizados desde años atrás... hay cada nombre...
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Re: Separar nombre y apellidos en una consulta mysql
Hi,
Si tienes un diseño todo embutido en un campo y no sabes las partes del nombre, yo le recuperaria y luego procesaria la cadena independiente de las partes
C.
Si tienes un diseño todo embutido en un campo y no sabes las partes del nombre, yo le recuperaria y luego procesaria la cadena independiente de las partes
Code: Select all | Expand
AEVal( hb_aTokens( 'adolfredo martinez fernandez' ), {|cItem| Qqout( cItem + CRLF) } )
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
"...programar es fácil, hacer programas es difícil..."
UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
-
- Posts: 121
- Joined: Fri Feb 15, 2019 1:37 pm
- Location: Aracataca-Colombia
Re: Separar nombre y apellidos en una consulta mysql
Por cuestion de que lo necesitava urgente, lo soluciones as:
SELECT contrib.propieta,
SUBSTRING(contrib.propieta, 1, LOCATE(' ', contrib.propieta) - 1) AS primer_apellido,
SUBSTRING(contrib.propieta, LOCATE(' ', contrib.propieta) + 1, LOCATE(' ', contrib.propieta) + 1 ) AS segundo_apellido,
SUBSTRING(contrib.propieta,LOCATE(' ', contrib.propieta, LOCATE(' ', contrib.propieta) +1)) AS nombre
FROM contrib
Como nada mas eran pocos registros, en total 3.000, los errores que salieron los corregi manualmente este fin de semana, no habia tiempo y por eso lo resolvi a lo chambon.
Cuando me desocupe le tiro cabeza y lo publico.
SELECT contrib.propieta,
SUBSTRING(contrib.propieta, 1, LOCATE(' ', contrib.propieta) - 1) AS primer_apellido,
SUBSTRING(contrib.propieta, LOCATE(' ', contrib.propieta) + 1, LOCATE(' ', contrib.propieta) + 1 ) AS segundo_apellido,
SUBSTRING(contrib.propieta,LOCATE(' ', contrib.propieta, LOCATE(' ', contrib.propieta) +1)) AS nombre
FROM contrib
Como nada mas eran pocos registros, en total 3.000, los errores que salieron los corregi manualmente este fin de semana, no habia tiempo y por eso lo resolvi a lo chambon.
Cuando me desocupe le tiro cabeza y lo publico.
Re: Separar nombre y apellidos en una consulta mysql
prueba asi
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(nombres, ' ', 1), ' ', -1) AS PrimerNombre,
IF( LENGTH(nombres) - LENGTH(REPLACE(nombres, ' ', ''))>1, SUBSTRING_INDEX(SUBSTRING_INDEX(nombres, ' ', 2), ' ', -1) ,NULL) AS SegundoNombre,
SUBSTRING_INDEX(SUBSTRING_INDEX(nombres, ' ', 3), ' ', -1) AS Apellidos FROM alumno
saludos
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(nombres, ' ', 1), ' ', -1) AS PrimerNombre,
IF( LENGTH(nombres) - LENGTH(REPLACE(nombres, ' ', ''))>1, SUBSTRING_INDEX(SUBSTRING_INDEX(nombres, ' ', 2), ' ', -1) ,NULL) AS SegundoNombre,
SUBSTRING_INDEX(SUBSTRING_INDEX(nombres, ' ', 3), ' ', -1) AS Apellidos FROM alumno
saludos
-
- Posts: 121
- Joined: Fri Feb 15, 2019 1:37 pm
- Location: Aracataca-Colombia
Re: Separar nombre y apellidos en una consulta mysql
Cuando aparecen apellidos compuestos no funciona osea los que empiezan COMO: DE LA ROSA, DE LA CRUZ, DE LOS REMEDIOS, DE LEON, DEL CORRAL etc...
Los primero lo que hay que hacer, si llega alguno asi, se le da otro trato, para lo que no son compuesto si funciona.
Los primero lo que hay que hacer, si llega alguno asi, se le da otro trato, para lo que no son compuesto si funciona.
- JoseAlvarez
- Posts: 807
- Joined: Sun Nov 09, 2014 5:01 pm
Re: Separar nombre y apellidos en una consulta mysql
Saludos adolfredo,Adolfredo Martinez wrote:Cuando aparecen apellidos compuestos no funciona osea los que empiezan COMO: DE LA ROSA, DE LA CRUZ, DE LOS REMEDIOS, DE LEON, DEL CORRAL etc...
Los primero lo que hay que hacer, si llega alguno asi, se le da otro trato, para lo que no son compuesto si funciona.
Tres mensajes atras de este ultimo que posteas, te hablé sobre el caso de los nombres y apellidos conformados por varias palabras.
Tuve el mismo problema y lo solucioné separando los apellidos y los nombres con una coma.
De la Cruz De Leon, Adolfredo de los Remedios.
Tambien tendras _ donde solo exista un nombre y un apellido.
Giancarlo Martínez
Puedes tomar en cuenta la sugerencia de carles, de validar los datos aparte, con una cadena de memoria.
"Los errores en programación, siempre están entre la silla y el teclado..."
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.