• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:思ってもいない結果に困っています)

データベースのSQL実行で想定外の結果が返ってくる

このQ&Aのポイント
  • データベースのテーブルには代引手数料が格納されており、範囲内の手数料を抽出するためにSQLを実行していますが、期待した結果が返ってきません。
  • 特定の代金に対する手数料を求めるために、postage_price_minとpostage_price_maxの条件を指定してSQLを実行していますが、該当するデータがないと返されてしまいます。
  • 最小の手数料を求めるために、daibiki_priceを降順に並び替えて最初のデータを取得するSQLを実行していますが、予想外の結果が返ってきます。設定を変えても同様です。

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

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

'2240'については'は付けないでください。 皆さん間違えるところですが、'を付けるのは文字項目だけです。 DESCは大きい方から取ってきています。

a4_chapp
質問者

お礼

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 という結果が返ってきます。 引続きアドバイスのほど頂戴出来たら幸いです。 お忙しい中恐縮ですが宜しくお願い致します。

その他の回答 (2)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.3

No2の方がおっしゃっているように、postage_price_min postage_price_max daibiki_priceは 文字型として処理しているように見受けられます。 もういちど、型のチェックをおねがいします。

a4_chapp
質問者

お礼

maiko0318さんへ 引続きご親切にお答え頂き有難うございました。 無事、解決することが出来ました。 この場をお借りし、maiko0318さん、osamuyさんへ お二方のお陰で解決出来ました。 どちらのアドバイスも私にとっては貴重で、とても順位を付けるべき事柄ではないのですが、 ご回答頂いた順としてポイントを付けさせて頂きます。 この度はありがとうございました!

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

手元の環境で試すと、こんな感じ。 > ORDER BY daibiki_price DESC LIMIT 1と実行させると、630が返ってきてしまいます daibiki_priceが文字列型なのかも。

a4_chapp
質問者

お礼

osamuyさん はじめまして。maiko0318さん同様、お疲れのところ夜遅くのご回答ありがとうございます。 また、動作確認までして下さったようで感謝いたします。 結果、仰るとおりカラムを数値型に設定することで無事解決出来ました。 maiko0318さんからのアドバイスにもありました、シングルコーテーションをはじめ、改めカラムの設定を意識することが出来ました。 ありがとうございました。