質問編集履歴
3
回答が返信欄での解決で分かりにくいので、他の困っている人のためにも本文にて解決の具体例を示す
test
CHANGED
File without changes
|
test
CHANGED
@@ -93,3 +93,19 @@
|
|
93
93
|
「なければ挿入」「あれば無視(更新でもOK)」というSQLを一回のクエリで、かつすべての条件で汎用的に行うのは不可能なのでしょうか
|
94
94
|
|
95
95
|
ベテランの方ご教授いただけますと幸いです
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
--------------------------
|
100
|
+
|
101
|
+
maisumakun様からの回答で解決しました
|
102
|
+
|
103
|
+
同じ内容で悩んでいる方のために、SQLの具体例を書いておきます
|
104
|
+
|
105
|
+
お役立てください
|
106
|
+
|
107
|
+
```ここに言語を入力
|
108
|
+
|
109
|
+
INSERT INTO `test`(str1,str2) SELECT * FROM (SELECT 'a'as col1,'a'as col2) AS TMP WHERE NOT EXISTS (SELECT * FROM `test` WHERE `str1` = 'a' AND `str2` = 'a');
|
110
|
+
|
111
|
+
```
|
2
条件を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -41,6 +41,8 @@
|
|
41
41
|
除外してください、今回はインデックスなしの「str1」「str2」を対象とします
|
42
42
|
|
43
43
|
「IGNORE」も同じ理由で除外だと思われます。
|
44
|
+
|
45
|
+
また、「str1とstr2」を合体させたユニークカラムを作る、は期待する情報ではありませんテーブルの構造はこの形のままでSQLが知りたいです。
|
44
46
|
|
45
47
|
|
46
48
|
|
1
一部条件変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
表題の通りで「なければ挿入」「あれば無視」というSQLを一回のクエリで
|
1
|
+
表題の通りで「なければ挿入」「あれば無視(更新でもOK)」というSQLを一回のクエリで
|
2
2
|
|
3
3
|
かつすべての条件で汎用的に行いたいです
|
4
4
|
|
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
テーブルは以下のような形です
|
14
14
|
|
15
|
-
このテーブルに、「str1がa」かつ「str2がa」のものが「なければ挿入」「あれば無視」をしたいです
|
15
|
+
このテーブルに、「str1がa」かつ「str2がa」のものが「なければ挿入」「あれば無視(更新でもOK)」をしたいです
|
16
16
|
|
17
17
|
```ここに言語を入力
|
18
18
|
|
@@ -88,6 +88,6 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
-
「なければ挿入」「あれば無視」というSQLを一回のクエリで、かつすべての条件で汎用的に行うのは不可能なのでしょうか
|
91
|
+
「なければ挿入」「あれば無視(更新でもOK)」というSQLを一回のクエリで、かつすべての条件で汎用的に行うのは不可能なのでしょうか
|
92
92
|
|
93
93
|
ベテランの方ご教授いただけますと幸いです
|