※ ChatGPTを利用し、要約された質問です(原文:条件を複数与えたい)
ネットショップ送料計算の適切なSQL文とは?
このQ&Aのポイント
ネットショップでの送料の計算を行いたい。都道府県とサイズによって送料を抽出する方法を知りたい。
同じ都道府県かつ同じサイズの場合はLIMIT 1で抽出、該当するサイズがない場合は最大金額を抽出、該当する都道府県がない場合は全体から最大金額を抽出するSQL文を教えてください。
PHPで制作しており、TRUEとFALSEで処理し、該当する都道府県がない場合は3度もDBに問い合わせる形になっている。効率的な処理方法をアドバイスしてほしい。
お世話になります。
ネットショップでの送料の計算を行いたいのですが、どのような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を利用しています。
宜しくお願い致します。
お礼
pa_cotta様 こんにちは。ご親切な回答をありがとうございます。 条件によりSQLを変えるんですものね。投稿した後、変な質問してしまったと思っていたところでした。 とは言え、貴重なアドバイスを頂戴し感謝しています。 気持ちが晴れました。ありがとうございました。