dポイントプレゼントキャンペーン実施中!

打率などを表示させたいとき、

.360

などはデータ型は何を定義すればよいでしょうか?

ご教授いただける方宜しくお願いします。

A 回答 (3件)

PHPと併用が前提であれば、MySQLに登録する際は数値として


登録する方がよいでしょう。
hit,numberをint、averageをdoubleとしておき

INSERT INTO `test`.`baseball`
(hit ,number ,average)
VALUES (1, 3, COALESCE(hit/number,0));

なんてしておけばよいでしょう。
かりに0打数0安打の場合でもaverageは0になります

表示はphpになりますので、そちらでsprintfなどで処理してください
    • good
    • 0

回答#1の方が回答されている通り、DECIMAL(M,D)を使用します。


(M,D)は「値は合計でM桁まで格納でき、そのうちのD桁は小数点以下である」という意味です。

ただ運用を考えると、「打数」と「安打数」のデータがあるならばそちらをDBに格納しておき、「打率」は「打数」と「安打数」のデータを取得してプログラム中で計算・表示を行う方が一般的です。

おそらく、".360"といったデータのデータ型のみについての質問だと思いますが・・・。

参考URL:http://dev.mysql.com/doc/refman/5.1/ja/numeric-t …
    • good
    • 0
この回答へのお礼

x_jouet_x

詳しいご回答ありがとうございました。

>ただ運用を考えると、「打数」と「安打数」のデータがあるならばそちらをDBに格納しておき、「打率」は「打数」と「安打数」のデータを取得してプログラム中で計算・表示を行う方が一般的です。

おっしゃるとおりPHPで計算してDBに格納→WEB表示を行う予定なんですが、この場合、MYSQL側のテーブル定義で打率、DECIMAL(4,3)Tと定義しなくてもいいのでしょうか?

追加の質問、且つ素人発言で申し訳ございませんがお時間のあるときにでも・・・宜しくお願いします。

お礼日時:2009/06/14 10:18

decimalを使いましょう。



dec(4,3)で、0.333といった値を保持できます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

勉強になりました。

お礼日時:2009/06/14 10:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!