MySQL:用德语将String转换为Float/Decimal

Chr*_*ann 3 mysql string floating-point

在MySQL表中,我有一个VARCHAR具有不同值的列,可以表示String-,Integer-,Float-,Whatever-Values.这些值作为特定于语言的字符串写入数据库,这意味着浮点值123.45可以像"123,45"德语一样写成字符串(使用VB.Net ...)

因为我需要同一组中浮点值的平均值:如何将这样的字符串转换为FLOATMySQL内的?只需AVG(CONVERT(value, DECIMAL))将无法正常工作(返回99.00000),转换FLOAT是不可能的.

Charset是utf8,Collat​​ion是utf8_general_ci.

样品表:

id | value  | group
1  | 122,45 | 1
2  |  66,34 | 1
3  | blabla | 2
4  | 109,21 | 1
5  | bababa | 2
Run Code Online (Sandbox Code Playgroud)

目标:某些事情SELECT AVG(CONVERT(value, DECIMAL)) FROM table WHERE (group=1)应该导致99.333333,而不是99.

有任何想法吗?

克里斯托夫

PS.:我没有做那个数据库布局......

Mar*_*rco 7

你可以试试

SELECT AVG(CONVERT(
    REPLACE(REPLACE(value, '.', ''), ',', '.'), 
    DECIMAL(10,2))) 
FROM `table`
WHERE `group`=1
Run Code Online (Sandbox Code Playgroud)