Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/03/2010, 14:33
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda con consulta y campo precio

Un detalle importante es que en mysql el separador decimal no es la coma (,) sino el punto. Eso también lo deberías cambiar.

Lo que te dice gnzsoloyo es que hagas un campo decimal y pases el valor casteado a este campo.

Por ejemplo:

Código MySQL:
Ver original
  1. mysql> create table prueba_precio(precio varchar(10));
  2. Query OK, 0 rows affected (0.05 sec)
  3.  
  4. mysql> insert into prueba_precio values('12,95');
  5. Query OK, 1 row affected (0.00 sec)
  6.  
  7. mysql> select *from prueba_precio;
  8. +--------+
  9. | precio |
  10. +--------+
  11. | 12,95  |
  12. +--------+
  13. 1 row in set (0.00 sec)
  14.  
  15. mysql> alter table prueba_precio add precio_d decimal(12,3);
  16. Query OK, 1 row affected (0.11 sec)
  17. Records: 1  Duplicates: 0  Warnings: 0
  18.  
  19. mysql> update prueba_precio set precio_d=replace(precio,',','.');
  20. Query OK, 1 row affected (0.01 sec)
  21. Rows matched: 1  Changed: 1  Warnings: 0
  22.  
  23. mysql> alter table prueba_precio drop column precio;
  24. Query OK, 1 row affected (0.00 sec)
  25. Records: 1  Duplicates: 0  Warnings: 0
  26.  
  27. mysql> desc prueba_precio;
  28. +----------+---------------+------+-----+---------+-------+
  29. | Field    | Type          | Null | Key | Default | Extra |
  30. +----------+---------------+------+-----+---------+-------+
  31. | precio_d | decimal(12,3) | YES  |     | NULL    |       |
  32. +----------+---------------+------+-----+---------+-------+
  33. 1 row in set (0.05 sec)
  34.  
  35. mysql> select *from prueba_precio;
  36. +----------+
  37. | precio_d |
  38. +----------+
  39. |   12.950 |
  40. +----------+
  41. 1 row in set (0.00 sec)

En este punto, tu consulta ya te va a funcionar como la planteas en un principio ya que el campo ya es numérico.

La segunda opción es hacer el mismo cast en la consulta sin modificar el campo. Pero esto puede afectar el rendimiento al tener que hacer varias operaciones repetitivas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming