Separar nombre y apellidos en una consulta mysql

Separar nombre y apellidos en una consulta mysql

Postby Adolfredo Martinez » Mon Jun 24, 2024 7:25 pm

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
Adolfredo Martinez
 
Posts: 116
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: Separar nombre y apellidos en una consulta mysql

Postby Armando » Mon Jun 24, 2024 7:52 pm

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
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
User avatar
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Separar nombre y apellidos en una consulta mysql

Postby cmsoft » Mon Jun 24, 2024 8:03 pm

Si te aseguras que siempre tiene al menos 3 nombres puedes hacer:

Code: Select all  Expand view  RUN

//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")
 
User avatar
cmsoft
 
Posts: 1291
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Separar nombre y apellidos en una consulta mysql

Postby karinha » Mon Jun 24, 2024 8:04 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Separar nombre y apellidos en una consulta mysql

Postby sysctrl2 » Mon Jun 24, 2024 9:05 pm

Lo mejor para mi,
crear campos separados
PATERNO
MATERNO
NOMBRE :lol:
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1022
Joined: Mon Feb 05, 2007 7:15 pm

Re: Separar nombre y apellidos en una consulta mysql

Postby JoseAlvarez » Mon Jun 24, 2024 11:11 pm

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


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".
"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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: Separar nombre y apellidos en una consulta mysql

Postby Adolfredo Martinez » Mon Jun 24, 2024 11:42 pm

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
Image

Este link que medio Karina

https://es.stackoverflow.com/questions/ ... -substring


Gracias por estar siempre ahi.
Adolfredo Martinez
 
Posts: 116
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: Separar nombre y apellidos en una consulta mysql

Postby Armando » Tue Jun 25, 2024 4:31 pm

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
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
User avatar
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Separar nombre y apellidos en una consulta mysql

Postby Adolfredo Martinez » Tue Jun 25, 2024 7:26 pm

Asi es Armando, en el segundo apellido, en la mayoria de los casos, se van letras del nombre.
Adolfredo Martinez
 
Posts: 116
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: Separar nombre y apellidos en una consulta mysql

Postby JoseAlvarez » Tue Jun 25, 2024 10:06 pm

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...
"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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: Separar nombre y apellidos en una consulta mysql

Postby Carles » Wed Jun 26, 2024 5:21 am

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

Code: Select all  Expand view  RUN
AEVal( hb_aTokens( 'adolfredo  martinez fernandez' ), {|cItem| Qqout( cItem + CRLF)  } )


C.
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
User avatar
Carles
 
Posts: 1137
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Separar nombre y apellidos en una consulta mysql

Postby Adolfredo Martinez » Tue Jul 02, 2024 5:46 pm

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.
Adolfredo Martinez
 
Posts: 116
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: Separar nombre y apellidos en una consulta mysql

Postby jbrita » Thu Jul 04, 2024 1:53 pm

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
jbrita
 
Posts: 502
Joined: Mon Jan 16, 2006 3:42 pm

Re: Separar nombre y apellidos en una consulta mysql

Postby Adolfredo Martinez » Sat Jul 06, 2024 5:51 pm

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.
Adolfredo Martinez
 
Posts: 116
Joined: Fri Feb 15, 2019 1:37 pm
Location: Aracataca-Colombia

Re: Separar nombre y apellidos en una consulta mysql

Postby JoseAlvarez » Sun Jul 07, 2024 12:11 pm

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.


Saludos adolfredo,

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 los casos 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.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 49 guests

cron