Mysql 如果不存在,如何插入;如果存在,如何更新(upsert)?

Mysql 如果不存在,如何插入;如果存在,如何更新(upsert)?,mysql,node.js,Mysql,Node.js,我目前对以下内容感到困惑: var post = {ip: host, status: info}; var sql = con.query('INSERT OR IGNORE INTO ipaddress SET ?', post, function(err, result){}); 我已经将IP地址设置为主键。Sequelize 既然您使用的是node.js,那么使用node.js怎么样 Sequelize是Node.js v4及更高版本的基于承诺的ORM。它支持PostgreSQL、M

我目前对以下内容感到困惑:

var post = {ip: host, status: info};
var sql = con.query('INSERT OR IGNORE INTO ipaddress SET ?', post, 
function(err, result){});
我已经将IP地址设置为主键。

Sequelize 既然您使用的是node.js,那么使用node.js怎么样

Sequelize是Node.js v4及更高版本的基于承诺的ORM。它支持PostgreSQL、MySQL、SQLite和MSSQL方言,并具有可靠的事务支持、关系、读取复制等功能

如果您对SQL不太了解,这无关紧要,因为您可以使用它的内置函数。例如,如果要执行
向上插入

ipaddress.upsert({
    ip: host,
    status: info,
});
纯MySQL 如果仍要使用MySQL,请使用重复密钥更新上的
执行upsert

var sql = `INSERT INTO post (ip, status) VALUES (${host}, ${info}) ON DUPLICATE KEY UPDATE ip=${host}, status=${info}`;

但您需要注意一些潜在的问题,如SQL注入。

这是哪个数据库?通过快速搜索,它似乎是Oracle、Postgres或sqlite。我正在使用MySQL。您所指的操作称为
UPSERT
。知道什么是谷歌的一个关键:P-这是一篇关于做你想做的事情的多种方法的好文章-那么什么是使用sequelize更安全呢?还是纯mysql?