重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お世話になります。
ネットショップでの送料の計算を行いたいのですが、どのようなSQL文が適切なのか、アドバイスを頂戴したく質問させて頂きます。

以下のようなテーブルがあり、都道府県、サイズ、送料が登録されています。

no  addr  size  price
1  大阪府 140  630
2  大阪府 160  840
3  福岡県 140  735

商品毎に商品サイズ、および発送先(都道府県別)によって、送料を抽出したいと考えているのですが、

1.同じ都道府県の登録、かつ不注意により同じサイズが登録されている。
・・・この場合は、LIMIT 1として抽出。

2.該当するサイズが登録されていなかった。
・・・この場合は、同じ都道府県から一番大きな金額を抽出。

3.該当する都道府県が登録されていなかった。
・・・この場合は全てから一番大きな金額を抽出。

と、考えられる想定を事前に施しておきたいのですが、この場合どのようなSQL文になるのでしょうか?

PHPで制作しているのですが、1つのSQL文が思いつかずTRUEとFALSEで処理する形になってしまい、該当する都道府県がなかった場合は、結果、3度もDBに問い合わせてしまう形になっています。

お忙しいなか恐縮ですが、アドバイスなど頂戴出来れば幸いです。
申し遅れましたが、DBはMySQLの5を利用しています。
宜しくお願い致します。

A 回答 (1件)

複雑なクエリを書けばなんとかなりはしますが、内部で色々やろうとすると混乱するだけになるかと思います。


ストアドプロシージャという機能がありますので、PHPでやるのがいやであれば、そちらで行うことをおすすめします。
    • good
    • 0
この回答へのお礼

pa_cotta様

こんにちは。ご親切な回答をありがとうございます。

条件によりSQLを変えるんですものね。投稿した後、変な質問してしまったと思っていたところでした。

とは言え、貴重なアドバイスを頂戴し感謝しています。
気持ちが晴れました。ありがとうございました。

お礼日時:2013/05/05 17:24

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

関連するカテゴリからQ&Aを探す