Vamos a ver si se entiende la idea que te exponemos:
Creamos la tabla de ejemplo.
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.16 sec)
Notarás que he cambiado el nombre del campo ID por algo mas identificador, la "longitud" qu e pusiste en el INT y que no sirve para nada, por el valor por default, pero UNSIGNED, y lo declaro AI y PK.
Tambien que cambié el tipo de dato de telefono por VARCHAR. Esto es por algo que tal vez tu no sepas, pero el tipo de dato usado para los telefonos es siempre varchar. Trabajo en interfases de datos de una empresa de telefonia celular, te lo digo con conocimiento de causa. Hay razones técnicas para hacerlo asi.
Luego insertamos datos imaginarios:
Código MySQL:
Ver originalmysql
> INSERT INTO agenda_cliente
(codigo
, nombre
, apellidos
, telefono
) -> VALUES ('DBA', 'Luis', 'Sanchez', '1154545454'), -> ('DBA', 'Luis', 'Sanchez', '1221122121'),
-> ('AST', 'Alicia', 'Fahon', '3232323232'),
-> ('AST', 'Roxana', 'Kramer', '5454545454'),
-> ('DBA', 'Federico', 'Filis', '9823571698'),
-> ('FRA', 'Nestor', 'Domec', '6598953265');
Query OK, 6 rows affected (0.01 sec)
Y finalmente probamos:
Código MySQL:
Ver original -> CONCAT(codigo
, LPAD(id_cliente
, 8, '0')) codigo
, -> apellidos,
-> telefono
-> agenda_cliente;
+-------------+-----------+------------+
| codigo | apellidos | telefono |
+-------------+-----------+------------+
| DBA00000001 | Sanchez | 1154545454 |
| DBA00000002 | Sanchez | 1221122121 |
| AST00000003 | Fahon | 3232323232 |
| AST00000004 | Kramer | 5454545454 |
| DBA00000005 | Filis | 9823571698 |
| FRA00000006 | Domec | 6598953265 |
+-------------+-----------+------------+
LPAD() rellena a izquierda el caracter que le digas. RPAD hace exactamente lo contrario.