• ベストアンサー

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

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

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

SELECT * FROM Orders WHERE cast(data as unsigned) >= 25; って感じでしょうか。 文字列のままでは大小比較は出来ませんので型を変えて処理しましょう。 また、文字列型のカラムで値が入っているカラムは数値型に定義変更が出来なかったと思いますので、別途数値型のカラムを用意してUPDATE文で新しいカラムにキャストしながら値を入れ、古いカラムを削除するというやり方で型を変えていくしかないでしょう。

soccerrlove
質問者

お礼

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

soccerrlove
質問者

補足

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

関連するQ&A