我想知道的解決方案非常有名插入如果不存在更新如果存在。插入如果不存在UPDATE如果存在不起作用
但我的不工作。我不知道爲什麼,有人能弄明白嗎?
這是我還沒有嘗試過:
$qprep = ("INSERT INTO gpsdata (`imei`,`latitude`,`longitude`)
VALUES ('$imei','$lathex1','$lonhex1') ON DUPLICATE KEY UPDATE
latitude='$lathex1',longitude='$lonhex1';");
我想更新的行如果相同的「IMEI」就在那裏,或插入如果它不是。 我有我的行作爲主鍵和從phpmyadmin,我做了imei「唯一」。
我在做什麼錯?
我的SQL DUMP:
CREATE TABLE IF NOT EXISTS `gpsdata` (
`ROW` int(11) NOT NULL AUTO_INCREMENT,
`IMEI` varchar(255) NOT NULL,
`Latitude` varchar(255) NOT NULL,
`Longitude` varchar(255) NOT NULL,
PRIMARY KEY (`ROW`),
UNIQUE KEY `IMEI` (`IMEI`,`Latitude`,`Longitude`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;
--
-- Dumping data for table `gpsdata`
--
INSERT INTO `gpsdata` (`ROW`, `IMEI`, `Latitude`, `Longitude`) VALUES
(24, '#2:359672050035420:2:*', '90.370803333333', '0'),
(30, '#2:359672050035420:2:*', '90.370803333333', '23.7584'),
(27, '#2:359672050035420:2:*', '90.370803333333', '23.75854'),
(35, '1:135790246811221:1:*', '1.0961283333333', '1.759595'),
(32, '1:135790246811221:1:*', '1.759595', '1.0961283333333');
你得到什麼錯誤? 你想用新的條目或與以前相同的數據更新它? – 6339
我沒有收到任何錯誤。即使imei號碼相同,它也只是添加一個新行,這不是我想要在這裏做的。我想更新新的條目(緯度,經度)可以改變,它會更新行,如果imei號碼存在。如果它是一個新的imei,它會插入一個新的行。 – hhs
@ hhs。 。 。那麼即使你認爲你做了,你也沒有對'imei'的唯一索引/限制。或者,新值與表中的值(拖尾空格,未看到的字符或類似內容)略有不同。 –