質問編集履歴
2
起きている問題を追記しました。
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のタグ削除
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
|
よろしくお願いいたします。
|