ID非公開

2022/1/5 19:17

22回答

MySQLで「なければINSERT、既存ならIDを取得」を一発で流す書き方はございませんでしょうか? 下記の【値】を【テーブル】に流して、【レスポンス】を得たいイメージです。 【値】

MySQL | PHP69閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0
ID非公開

質問者2022/1/5 20:31

そうですよね。かなりググってみたのですが、UPDATEは行数が返るだけですし、仰るように INSERT ... ON DUPLICATE KEY UPDATE も成功したIDが返ることもないですし。 多聞にして博識なshimixさんが仰るなら無理なのだろうなと諦めががつきます。 ありがとうございました。

その他の回答(1件)

0

挿入されたり、更新されたりが分かるように、タイムスタンプの項目を足しました。 CREATE TABLE hito(   `ID`       INT UNSIGNED NOT NULL AUTO_INCREMENT,   `kind_id`  INT(3),   `tag_name` VARCHAR(100),   `created`  TIMESTAMP,   `updated`  TIMESTAMP, PRIMARY KEY (ID), UNIQUE unique_hito (kind_id, tag_name)); IDはAUTO_INCREMENTなので、INSERTの対象から外しました。 INSERT INTO hito (kind_id, tag_name, created) VALUES   (2, 'ゴン', NOW()),   (1, '冨樫義博', NOW()) ON DUPLICATE KEY UPDATE   updated = NOW();

ID非公開

質問者2022/1/5 20:25

ありがとうございます。試してみました。恐れ入りますが「既存ならIDを取得」ができないのではないでしょうか?