【发布时间】:2014-11-29 09:47:56
【问题描述】:
所以我在这里看到了一些类似的问题,但我就是无法理解。
我的桌子:
'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');
我不必担心转义和验证,这已经完成了 我只需要一个可以完成此任务的声明。 :)
【问题讨论】:
-
那篇文章是 SQL Server 2008,而不是 SQLite:P
-
或stackoverflow.com/questions/418898/… ....................
-
然后查看@edelwater 的重复建议......看起来你不是第一个问这个问题的人......搜索是你的好朋友;)
-
edelwater,我看到了这个问题,但我不确定如何指定要在哪一列上查找匹配项。如果我只是执行此更新 SQL 命令,那么它是否会使用匹配的服务器 ip 更新第一行?客户端IP?我特别想通过客户端 GUID 来做。
-
在 418898 中注意答案中的“选择”