我正在构建一个点击计数器。我有一个文章目录和跟踪唯一访问者。当访问者来访时,我将文章 ID 和他们的 IP 地址插入数据库。首先,我检查文章 ID 是否存在 ip,如果 ip 不存在,我将进行插入。这是两个查询——有没有办法进行这个查询
此外,我没有使用存储过程,我使用的是常规内联 sql
最佳答案
这里有一些选项:
INSERT IGNORE INTO `yourTable`
SET `yourField` = 'yourValue',
`yourOtherField` = 'yourOtherValue';
来自 MySQL 引用手册:“如果使用 IGNORE 关键字,则在执行 INSERT 语句时发生的错误将被视为警告。例如,如果没有 IGNORE,重复现有 UNIQUE 索引或 PRIMARY KEY 值的行表导致重复键错误并且语句被中止。”。)如果记录尚不存在,将创建它。
另一种选择是:
INSERT INTO yourTable (yourfield,yourOtherField) VALUES ('yourValue','yourOtherValue')
ON DUPLICATE KEY UPDATE yourField = yourField;
不抛出错误或警告。
关于c# - 仅当行不存在时才插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634833/