我正在尝试编写一个if exists else sql,它将在c#winform中进一步使用mysql,这里是测试
IF NOT EXISTS(SELECT 1 from products where entity_id=1) select * from products;
我在adminer中运行sql但是有一条错误消息, 第1行'select * from products'附近的语法错误
任何人都知道这是什么问题?
答案 0 :(得分:0)
试试这个:
DELIMITER $$
DROP PROCEDURE IF EXISTS `verifyExist` $$
CREATE PROCEDURE `verifyExist`()
BEGIN
IF NOT EXISTS(SELECT 1 from products where entity_id=1) THEN
select * from products;
END IF;
END$$
DELIMITER ;
答案 1 :(得分:0)
首先,您应该在列上创建UNIQUE约束。
ALTER TABLE products ADD CONSTRAINT fk_products UNIQUE (column1, column2, etc..)
然后只需插入数据:
INSERT INTO products (column1, column2, etc..) VALUES(value1, value2, etc..) ON DUPLICATE KEY UPDATE column1 = newValue, column2 = newValue2;