我想知道的解决方案非常有名插入如果不存在更新如果存在。插入如果不存在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'的唯一索引/限制。或者,新值与表中的值(拖尾空格,未看到的字符或类似内容)略有不同。 –