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

回答編集履歴

1

ほかの方法を追記

2016/08/03 07:53

投稿

kutsulog
kutsulog

スコア985

answer CHANGED
@@ -5,6 +5,21 @@
5
5
  SQLを2回発行することになりますがDELETE/INSERTされてはいかがでしょう?
6
6
 
7
7
  ```SQL
8
- DELETE FROM users WHERE email=?
8
+ DELETE FROM users WHERE email=?;
9
9
  INSERT INTO users(email,password,entryday) VALUES ( ? , ? , NOW() );
10
+ ```
11
+
12
+ あとはUPDATE文とINSERT文を条件分岐しないで2回実行してしまうとか
13
+ ```SQL
14
+ UPDATE users
15
+ SET password = ?
16
+ WHERE email = ?
17
+ ;
18
+ INSERT INTO users
19
+ (email,password,entryday)
20
+ SELECT ? AS email, ? AS password, NOW() AS entryday
21
+ WHERE NOT EXISTS(
22
+ SELECT 1 FROM users WHERE email = ?
23
+ )
24
+
10
25
  ```