- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:思ってもいない結果に困っています)
データベースのSQL実行で想定外の結果が返ってくる
このQ&Aのポイント
- データベースのテーブルには代引手数料が格納されており、範囲内の手数料を抽出するためにSQLを実行していますが、期待した結果が返ってきません。
- 特定の代金に対する手数料を求めるために、postage_price_minとpostage_price_maxの条件を指定してSQLを実行していますが、該当するデータがないと返されてしまいます。
- 最小の手数料を求めるために、daibiki_priceを降順に並び替えて最初のデータを取得するSQLを実行していますが、予想外の結果が返ってきます。設定を変えても同様です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
'2240'については'は付けないでください。 皆さん間違えるところですが、'を付けるのは文字項目だけです。 DESCは大きい方から取ってきています。
その他の回答 (2)
- maiko0318
- ベストアンサー率21% (1483/6969)
回答No.3
No2の方がおっしゃっているように、postage_price_min postage_price_max daibiki_priceは 文字型として処理しているように見受けられます。 もういちど、型のチェックをおねがいします。
質問者
お礼
maiko0318さんへ 引続きご親切にお答え頂き有難うございました。 無事、解決することが出来ました。 この場をお借りし、maiko0318さん、osamuyさんへ お二方のお陰で解決出来ました。 どちらのアドバイスも私にとっては貴重で、とても順位を付けるべき事柄ではないのですが、 ご回答頂いた順としてポイントを付けさせて頂きます。 この度はありがとうございました!
- osamuy
- ベストアンサー率42% (1231/2878)
回答No.2
手元の環境で試すと、こんな感じ。 > ORDER BY daibiki_price DESC LIMIT 1と実行させると、630が返ってきてしまいます daibiki_priceが文字列型なのかも。
質問者
お礼
osamuyさん はじめまして。maiko0318さん同様、お疲れのところ夜遅くのご回答ありがとうございます。 また、動作確認までして下さったようで感謝いたします。 結果、仰るとおりカラムを数値型に設定することで無事解決出来ました。 maiko0318さんからのアドバイスにもありました、シングルコーテーションをはじめ、改めカラムの設定を意識することが出来ました。 ありがとうございました。
お礼
maiko0318さん はじめまして。早速のアドバイスをありがとうございます。 シングルコーテーションを付けるのは文字項目だけなのですね。勉強になりました! 早速直してみたところ、願っていた結果を得ることが出来ました。ありがとうございます。 ただ、ORDER BYに関してですが、 DESCを付けると630が。 外すと1050が返ってくる状態です。 テーブルの構成、その内容は質問時に描いた内容そのままなのですが、どのようなことが考えられますでしょうか? ちなみに、 ORDER BY postage_price_min とすると315 ORDER BY postage_price_min DESCとすると630 ORDER BY postage_price_max とすると420 ORDER BY postage_price_max DESC とすると630 という結果が返ってきます。 引続きアドバイスのほど頂戴出来たら幸いです。 お忙しい中恐縮ですが宜しくお願い致します。