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
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
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
//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")Adolfredo Martinez wrote:Hola amigos del forumSi 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".
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:
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
Asi es Armando, en el segundo apellido, en la mayoria de los casos, se van letras del nombre.
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...
AEVal( hb_aTokens( 'adolfredo martinez fernandez' ), {|cItem| Qqout( cItem + CRLF) } )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.
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
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 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...Saludos adolfredo,
Los primero lo que hay que hacer, si llega alguno asi, se le da otro trato, para lo que no son compuesto si funciona.