IF EXISTS(select * from person_data where `Key`='tags' and `Value`='blogger')
begin
UPDATE person_data SET `Value`= 'aaaaaaa'
end
else
begin
INSERT INTO person_data(Id,`Key`,`Value`,Person_id)
SELECT IFNULL(MAX(Id)+1,1),'aaa','bbb',1 FROM person_data
end if;
它一直抱怨第1行存在问题。 请指出我做错的地方
答案 0 :(得分:0)
将END IF
更改为END
,应该这样做。
答案 1 :(得分:0)
尝试创建SP,请看下面的
您需要将列KEY
放在后面的刻度线(``)中,因为 KEY 是MySQL中的关键字
DELIMITER $$
CREATE
PROCEDURE `InsertOrUpdate`()
BEGIN
SELECT COUNT(*) INTO ifexists FROM person_data WHERE KEY='tags' AND VALUE='blogger';
IF ifexists !=0 THEN
UPDATE person_data SET VALUE= 'aaaaaaa';
ELSE
INSERT INTO person_data(Id,KEY,VALUE,Person_id)
SELECT IFNULL(MAX(Id)+1,1),'aaa','bbb',1
FROM person_data ;
END IF;
END$$
DELIMITER ;
答案 2 :(得分:0)
您不能使用IF控制块OUTSIDE功能。这会影响您的两个查询。
将EXISTS子句转换为子查询,而不是IF函数
SELECT IF( EXISTS(
select * from person_data where `Key`='tags' and `Value`='blogger'), true, false)