teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

起きている問題を追記しました。

2021/03/10 15:36

投稿

justicebot
justicebot

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,12 @@
1
+ ## 起きている問題
2
+ faxをシステムから送信した時に、送信した履歴をデータベースにインサートし、送信履歴を閲覧できる画面を作っています。
3
+ 送信済みのfaxに一部訂正をして、再送信した際は「再送信」という目印をつけようとしています。
4
+ 送信履歴の表示時に、再送信のカウントをするとページ表示が遅くなると思ったので、インサート時に再送信フラグをつけようと思いました。
5
+ faxを大量送信した場合のことを考えて、クエリは最小で済むように考えたいですが、クエリの書き方がわかりません。
6
+
7
+ ## 行いたいこと
1
8
  例えば以下のfaxテーブルがある時、fax_codeが「a2」であるレコードを更に2回インサートした時、期待する結果となってほしいです。
2
9
 
3
-
4
10
  faxテーブル
5
11
  |id|fax_code|resend|
6
12
  |:--|:--:|:--:|
@@ -8,7 +14,7 @@
8
14
  |2|a2|0|
9
15
  |3|a3|0|
10
16
 
11
- ### 期待する結果
17
+ #### 期待する結果
12
18
  |id|fax_code|resend|
13
19
  |:--|:--:|:--:|
14
20
  |1|a1|0|
@@ -18,7 +24,7 @@
18
24
  |5|a2|2|
19
25
 
20
26
 
21
- ## 試したクエリ
27
+ #### 試したクエリ
22
28
  ```query
23
29
  INSERT INTO `fax` (`id`, `fax_code`, `resend`) VALUES ('', 'a2', case when select count(`fax_code`) from `fax` where `fax_code` = 'a2' = 0 then '1' else '0' end)
24
30
  ```

1

mysqlのバージョン追記、1文で行いたい理由追記、PHPのタグ削除

2021/03/10 15:36

投稿

justicebot
justicebot

スコア15

title CHANGED
File without changes
body CHANGED
@@ -23,4 +23,7 @@
23
23
  INSERT INTO `fax` (`id`, `fax_code`, `resend`) VALUES ('', 'a2', case when select count(`fax_code`) from `fax` where `fax_code` = 'a2' = 0 then '1' else '0' end)
24
24
  ```
25
25
 
26
+ MySQLのバージョンは5.7です。
27
+ レコードは削除されることはありません。
28
+ 1文で行いたい理由は、コードをより簡潔にしたい為です。
26
29
  よろしくお願いいたします。