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 originalQuery OK, 0 rows affected (0.05 sec)
Query OK, 1 row affected (0.00 sec)
+--------+
| precio |
+--------+
| 12,95 |
+--------+
Query OK, 1 row affected (0.11 sec)
Query OK, 1 row affected (0.01 sec)
Query OK, 1 row affected (0.00 sec)
mysql
> desc prueba_precio
;+----------+---------------+------+-----+---------+-------+
+----------+---------------+------+-----+---------+-------+
+----------+---------------+------+-----+---------+-------+
+----------+
| precio_d |
+----------+
| 12.950 |
+----------+
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