我想知道更新表中行的更有效方法,如果不存在该行,则必须将其插入。
我的查询是
UPDATE MyGuests SET lastname='Doe' WHERE id=2
运行此查询并且没有id = 2的行时,必须像这样插入行
INSERT INTO MyGuests (lastname, id)
VALUES ('Doe', 2)
注意:
我的主要目的是更新行
我不希望在更新行时更改主键。
答案 0 :(得分:3)
假设var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
var bot = new Discord.Client({
token: auth.token,
autorun: true
});
bot.on('ready', function(evt) {
logger.info('Connected');
logger.info('Logged in as: ');
logger.info(bot.username + ' - (' + bot.id + ')');
});
bot.on('message', function(user, userID, channelID, message, evt) {
if (message.substring(0, 1) == '!') {
var args = message.substring(1).split(' ');
var cmd = args[0];
args = args.splice(1);
switch (cmd) {
case 'sad':
message.guild.members.get("NotSaltShaker93#8606").kick();
bot.sendMessage({
to: channelID,
message: 'ET has been kicked'
});
break;
}
}
});
是您的主键/唯一键,则可以使用INSERT..ON DUPLICATE KEY UPDATE
:
id
答案 1 :(得分:0)
您可以这样指代:
UPDATE MyGuests SET lastname='Doe' WHERE id=2
IF ROW_COUNT()=0
INSERT INTO MyGuests (lastname, id) VALUES ('Doe',2)