4

と呼ばれる列を持つテーブルがあり、が 未満であるitemCountときに上位 n 行を選択したいと考えています。SUM(itemCount)y

+----+-----------+
| id | itemCount |
+----+-----------+
|  1 |         5 |
|  2 |        10 |
|  3 |         1 |
|  4 |        20 |
+----+-----------+

この場合、次のようなものが必要な上位2行が必要ですy=15SUM(itemCount)<=15

SELECT * FROM `tbl_mail_queue` LIMIT 0,(select count(id) from `tbl_mail_queue` m where SUM(m.`count`)<=15)

これは可能ですか?

アップデート:

システムから送信されたすべての電子メールがこのテーブルに保存される電子メール キュー システムを作成しています。 email はニュースレターで、各メールには数十または数百の受信者がいる可能性がありますが、私はそれらを 50 の受信者スタックに分割するだけです)。

SO すべての行の count 列は 1 から 50 までの値を持つことができます。ここで、数分ごとに 50 通のメールを送信したいと考えています。ここで、1 行以上 (n) 行に含まれる上位 50 通のメールを選択するためにこのクエリが必要です。


ユーザーが生成したエラーに対して例外をスローすることは、悪用と見なされますか?

ユーザーがサイトに登録できるフォームがあり、次の 3 つの予期されるエラーが発生するとします。

  1. ユーザー名は既に使われています
  2. メールは既に使用されています
  3. パスワードが最小要件を満たしていません

これらの例外をスローし、try/catch で適切に処理する場合、それは良い習慣または例外の悪用と見なされますか?

例外を使用して既知/予想されるメッセージをエンドユーザーに表示することと、例外を使用して何かを開発するときにコードの問題を開発者に警告することには違いがあるように感じます。

ユーザー向けメッセージ (成功の確認であっても!) を表示するための簡単なソリューションとして、例外と try/catch ブロックを使用するのは非常に魅力的です。例外メッセージに関する use/abuse 行はどこにありますか? (もしあれば)?

4

1 に答える 1