0

次のデータがあります (フィールド varchar(55)):

123,00
212,11
1.212,00

SELECT MIN(FIELD) FROM XYZ

「1.212,00」と出ます。これは私にとっては間違っていますが、MySQL にとっては間違っていません。次が必要です: 123,00。

フィールドタイプを変更せずにこれを行うにはどうすればよいですか?

ティアマット

4

2 に答える 2

1

char 値を数値にキャストする必要があります。

select min(
              CAST( replace(
                      replace ( FIELD, '.', '' ),
                      ',', '.'
                    )
                   AS DECIMAL(5,2))
           )  ...
于 2012-04-17T14:21:54.293 に答える
0

Castまたはを使用Convert:

CONVERT() および CAST() 関数は、あるタイプの値を受け取り、別のタイプの値を生成します。

SELECT MIN(CAST(Field AS DECIMAL(10,2))) FROM XYZ

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast

于 2012-04-17T14:21:56.337 に答える