質問編集履歴

3

回答が返信欄での解決で分かりにくいので、他の困っている人のためにも本文にて解決の具体例を示す

2020/12/07 05:51

投稿

tesopgmh
tesopgmh

スコア146

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

条件を追加

2020/12/07 05:51

投稿

tesopgmh
tesopgmh

スコア146

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

一部条件変更

2020/12/07 04:05

投稿

tesopgmh
tesopgmh

スコア146

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
  ベテランの方ご教授いただけますと幸いです