0

問題があります。行が存在しない場合にテーブルにフィールドを挿入したい

私のコードは次のとおりです。

INSERT INTO  `myTable` (
`circuit` ,
`date` ,
`session` ,
`lap` ,
`time`
) SELECT  'misano',  '2013-10-11',  1,  1,  '0:01:06:332'
FROM `myTable`
WHERE NOT EXISTS (SELECT 1 FROM `myTable` WHERE `circuit` = 'misano' AND `date` = '2013-10-11' AND `session` = 1 AND `lap` = 1 AND `time` = '0:01:06:332')

「myTable」に少なくとも 1 つの行がある場合、このコードは正常に機能します。「myTable」が空の場合、SQL は 0 行を返します。

4

2 に答える 2

4

テーブルに主キーまたは一意のインデックスがある場合は、INSERT ... ON DUPLICATE KEY UPDATEを使用できます。

INSERT INTO `myTable` (`circuit`, `date`, `session`, `lap`, `time`)
    VALUES ('misano', '2013-10-11', 1, 1, '0:01:06:332') 
ON DUPLICATE KEY
UPDATE `circuit` = VALUES (`circuit`), 
        `date` = VALUES (`date`), 
        `session` = VALUES (`session`), 
        `lap` = VALUES (`lap`), 
        `time` = VALUES (`time`)
于 2013-10-20T14:40:00.193 に答える