2

mysql関数を使用して浮動小数点数の列の最小値を見つけることは可能ですか?次の表があるとします。

id | 値
a| 24.88
a | 119.99

私が試してみると:

SELECT MIN(value) FROM [table name] GROUP BY id;

mysqlは
119.99を返します

さまざまな浮動小数点数でこれをテストした後、mysqlは文字列「1」と「2」のそれぞれの最初の文字を取得し、小さい方の文字に基づいて最小値を選択するため、これが当てはまると思います。

私はこのフォーラムや他の人たちが答えを見つけようとしているのを読みましたが、誰もこの問題を提起していないようです。

CEIL(value)も試しましたが、その関数にもいくつかのバグがあるようで、整数ではなく浮動小数点数を維持したいと思います。

みんな、ありがとう。

4

1 に答える 1

2

列が文字ベースのデータ型として格納されているようです。これは、次の2つの方法のいずれかで解決できます。

  1. 列タイプを数値タイプに変更します
  2. クエリを変更して、値の周囲にCASTを追加します。MIN(CAST(value AS DECIMAL))

列の変更は次のようになります。

ALTER TABLE my_table MODIFY COLUMN value double;

そして、私が知る限り、MySQLあなたに代わってデータを変換しようとします。「試行する」と記載されているここのメモを参照してください。

于 2012-07-09T01:52:14.583 に答える