質問編集履歴

1

追記いたしました

2023/11/20 07:30

投稿

origa3
origa3

スコア22

test CHANGED
File without changes
test CHANGED
@@ -145,3 +145,29 @@
145
145
  MySQL はやや古めで 5.7 です。
146
146
  よろしくお願い致します。
147
147
 
148
+ ### 追記
149
+ 「IDを取得」と「一括」について意味がわかりにくいと指摘を受けましたのでご説明させていただきます。
150
+
151
+ 「IDを取得」については `bulkInsertAndIfDuplicateGetIds1()` が成功しています。リンク34行目で `$result1` に `["1","5","3"]` が得れることで「IDを取得」が出来ているという意味です。(既存であった 1,3 を得て、さらに新規に 5 も得れています。)
152
+
153
+ あとはこれを「一括」でやりたいという意図で、 `bulkInsertAndIfDuplicateGetIds2()`, `bulkInsertAndIfDuplicateGetIds3()` を試しました。
154
+
155
+ そして「一括」かどうかは下記の違いを意図しておりました。
156
+ ```SQL
157
+ -- 「一括」である
158
+ INSERT INTO test_datas(xxx)
159
+ VALUES ('aaa'), ('bbb');
160
+
161
+ -- 「一括」ではない
162
+ INSERT INTO test_datas(xxx)
163
+ VALUES ('aaa');
164
+ INSERT INTO test_datas(xxx)
165
+ VALUES ('bbb');
166
+ ```
167
+
168
+ なので `bulkInsertAndIfDuplicateGetIds1()` は「一括」ではありませんが、「IDを取得」はできています。
169
+ 逆に `bulkInsertAndIfDuplicateGetIds2()`, `bulkInsertAndIfDuplicateGetIds3()` は「一括」ですが、しかし「IDを取得」はできておらず、 `["4","4","4"]` になってしまいます。
170
+
171
+ 以上のように「IDを取得」と「一括」をイメージしており、この両立を目指しているという次第です。
172
+
173
+