次のデータがあります (フィールド varchar(55)):
123,00
212,11
1.212,00
と
SELECT MIN(FIELD) FROM XYZ
「1.212,00」と出ます。これは私にとっては間違っていますが、MySQL にとっては間違っていません。次が必要です: 123,00。
フィールドタイプを変更せずにこれを行うにはどうすればよいですか?
ティアマット
char 値を数値にキャストする必要があります。
select min(
CAST( replace(
replace ( FIELD, '.', '' ),
',', '.'
)
AS DECIMAL(5,2))
) ...
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