Ver Mensaje Individual
  #7 (permalink)  
Antiguo 03/03/2010, 15:07
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ayuda con consulta y campo precio

Dependerá de lo eficiente que quieras que sea el sistema.
En primer lugar, la "metida de pata" es grave desde el punto de vista de las bases de datos, porque cada función de conversión que se deba usar son ciclos de microprocesador que se consumen. Cuando tienes algunas centenas de registros, no hay problema. Cuando son decenas de miles.... o millones....
En fin, es el tipo de errores que le cuestan el trabajo a algunos.

Volviendo al punto:
Lo mejor, lo óptimo, lo más conveniente, es (tomando el ejemplo de Huesos52):
1) Crear una columna de tipo decimal en la tabla.
Código MySQL:
Ver original
  1. ALTER TABLE prueba_precio add precio_d DECIMAL(12,3);
2) Realizar un UPDATE masivo pasando los valores de la columna de precio a la nueva columna, realizando el CAST indicado por huesos52:
Código MySQL:
Ver original
  1. UPDATE prueba_precio SET precio_d = CAST(REPLACE(precio,',','.') AS DECIMAL(12,2);
3) Eliminar la columna vieja:
Código MySQL:
Ver original
  1. ALTER TABLE prueba_precio DROP COLUMN precio;
4) Cambiar el nombre de la nueva columna por el de la vieja columna (así no hay problemas con las aplicaciones):
Código MySQL:
Ver original
  1. ALTER TABLE prueba_precio CHANGE COLUMN precio_d precio DECIMAL(12,3));
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)