En un proceso de importación que acabo de terminar de montar, me toca comprobar si un usuario está registrado y como no tenemos DNI toca hacerlo comprobando si el nombre y los apellidos coinciden. No es que sea muy de fiar pero el cliente es lo que pide….
El problema es que el nombre y los apellidos están en tres campos distintos por lo que toca concatenarlos.
SELECT CONCAT(NOMBRE,APELLIDO1,APELLIDO2) FROM tabla;
Primer problema, lo más normal es que la gente meta un espacio ya sea porque se le escape o porque al importarlo lo ha cogido asi que hacemos un concat pero esta vez eliminando los espacios
SELECT REPLACE(CONCAT(NOMBRE,APELLIDO1,APELLIDO2) ), ' ', '') FROM tabla;
Pero claro, si uno de los campos está a null falla fijo así que lo que hacemos es comprobar antes de concatenar si el campo está a null para sustituirlo por un espacio
SELECT REPLACE(CONCAT(COALESCE(NOMBRE,''), COALESCE(APELLIDO1,''), COALESCE(APELLIDO2,'')) ), ' ', '') FROM tabla;
Todo esto claro está, teniendo en cuenta que la base de datos está configurada para que no distinga acentos ni mayúsculas porque si no ya toca rizar el rizo:
SELECT UPPER(REPLACE(CONCAT(COALESCE(NOMBRE,''), COALESCE(APELLIDO1,''), COALESCE(APELLIDO2,'')) ), ' ', '')) FROM tabla COLLATE utf8_bin;
0 Comentarios.