こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

phpMyAdminでSQLのコマンドについて

SELECT * FROM Orders WHERE data >= '25'
dataの部分で値が25以上の情報を出してもらいたいのに、出てくるのが25以上もあるし、下回るのも平気で出てくるので、どうやって検索すればわからないです。
dataの部分のTYPEがVARCHARになってるのが問題のような気がするのですが、DOUBLEに変えようと思ってもできませんでした。
何か対策がないでしょうか?
回答よろしくおねがいします!

投稿日時 - 2014-07-31 14:50:10

QNo.8699293

すぐに回答ほしいです

質問者が選んだベストアンサー

SELECT * FROM Orders WHERE cast(data as unsigned) >= 25;

って感じでしょうか。
文字列のままでは大小比較は出来ませんので型を変えて処理しましょう。

また、文字列型のカラムで値が入っているカラムは数値型に定義変更が出来なかったと思いますので、別途数値型のカラムを用意してUPDATE文で新しいカラムにキャストしながら値を入れ、古いカラムを削除するというやり方で型を変えていくしかないでしょう。

投稿日時 - 2014-07-31 16:12:44

補足

>SELECT * FROM Orders WHERE cast(data as unsigned) >= 25;
これをSQLに流してもできなかったので、新しくカラムを作ろうと思います。
小数第一位までを表してかつマイナスとプラスそれぞれ100までいくために、double(100)?? 今調べ中なのですが、型の決定と大きさをどうするかで止まってます!

投稿日時 - 2014-08-02 15:07:31

お礼

Float(20)とかやってみたらなんとかできました!!
回答ありがとうございました!!

投稿日時 - 2014-08-02 17:12:43

ANo.1

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問