所以我在这里看到了一些类似的问题,但我就是无法理解。
我的桌子:
'timestamp' int(30) NOT NULL,
'clientguid' varchar(32) NOT NULL,
'clientip' varchar(32) NOT NULL,
'serverip' varchar(32) NOT NULL)
我有4个变量
$TimeStamp
$ClientGUID
$ClientIP
$ServerIP
我的查询应该执行以下操作:如果存在clientguid
与$ClientGUID
:匹配的行
UPDATE 'mytablename'
SET 'timestamp' = '$TimeStamp','clientip' = '$ClientIP','serverip' = '2.2.2.24'
WHERE 'mytablename'.'clientguid' = '$ClientGUID');
如果没有匹配的行:
INSERT INTO 'mytablename' ('timestamp','clientguid','clientip','serverip')
VALUES($TimeStamp,'$ClientGUID', '$ClientIP', '$ServerIP');
我不必担心逃避和验证,这已经完成了我只需要一个能做到这一点的声明。:)
如果您在表上设置了唯一键,那么您可以首先进行插入,如果出现错误,则记录重复性,然后捕获它们并进行更新。这通常比一些先如何存在的行更快,然后再做它的更新。
为colomn clientguid创建UNIQUE索引然后tou可以使用INSERT。。。。关于重复密钥更新
INSERT INTO yourtable (timestanp, clientguid,clientip, serverip)
VALUES(NOW(), $clientguid, '$clientip', '$serverip')
ON DUPLICATE KEY UPDATE
timestamp = NOW(),
clientip = VALUES(clientip),
serverip = VALUES(serverip)