我希望能够做到这样的事情:
IF EXISTS (SELECT * FROM table WHERE col=val)
INSERT ......
ELSE
UPDATE ......
我知道你能做到这一点:
IF EXISTS (SELECT * FROM table WHERE col=val)
INSERT ......
但是我不确定你是否可以做其他事情。
第一次查询的最快方法是什么?
答案 0 :(得分:1)
是的,这是可能的。一种方法是使用一个程序。
DELIMITER $$
DROP PROCEDURE IF EXISTS `YOUR-PROCEDURE`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `YOUR-PROCEDURE`()
BEGIN
IF EXISTS (SELECT * FROM table WHERE col=val)
THEN
BEGIN
UPDATE table SET ..;
END;
ELSE
BEGIN
INSERT INTO table ..;
END;
END IF;
END$$
DELIMITER ;
答案 1 :(得分:0)
您应该使用INSERT ... ON DUPLICATE KEY UPDATE
insert into table1 (col1,col2) values(1,2)
on duplicate key update col2=3, col1=4
有关详细信息,请参阅Here。