2008-10-01 20 views
13

Tengo una tabla de usuarios que tiene una columna de nombre de usuario que consta de un número de seis dígitos, por ejemplo, 675381, debo anteponer un cero a cada uno de estos nombres de usuario, p. 0675381 sería el resultado final del ejemplo anterior, ¿hay alguna consulta que pueda manejar esto?Pregunta MySQL para anteponer el carácter a cada entrada

Respuesta

27
UPDATE Tablename SET Username = Concat('0', Username); 
+0

Gracias, usuario brian lo consiguió primero, pero debería haber dicho antes que en lugar de adjuntar, ¡parece que ya ha borrado su publicación! Aclamaciones. – Stuart

+1

proporcionó un ejemplo: 675381 debería convertirse en 0675381 – daniels

4

¿de qué tipo es la columna de?

si es de tipo cadena, intentar algo como esto:

UPDATE your_table SET column_name=concat('0',column_name); 
+0

Gracias, daniels fue un poquito más rápido. – Stuart

1

¿Quiere decir "anteponer"? es decir, agrégalo en el frente?

¿La columna es numérica? ¿Siempre quieres 7 caracteres de salida?

Suponiendo que, algo como esto funcionaría para una consulta:

select LPAD(CONVERT(username, CHAR), 7, '0') 

Si la columna es caracteres, la parte CONVERT() no es necesario, simplemente DEPA el nombre de usuario.

Si desea modificar permanentemente el valor de la tabla, deberá asegurarse de que la columna sea de un tipo de caracteres y ACTUALIZAR utilizando lo anterior.

+0

Sí, me refería a prepend, era solo un varchar, así que la solución de daniels es perfecta. Gracias. – Stuart

0

Es posible que desee utilizar CONCAT_WS ('', '0', nombre de usuario) porque si hay un valor nulo, terminará con NULL en lugar de '0'. Esto probablemente no sea un problema, pero algo que he aprendido de la manera difícil.

Cuestiones relacionadas