首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持多查询的MySQL if else语句

问支持多查询的MySQL if else语句
EN

Stack Overflow用户
提问于 2020-06-23 02:05:34
回答 1查看 42关注 0票数 0

我是MySQL新手,我想在查询中使用IF else语句

代码语言:javascript
复制
IF (EXISTS (SELECT user_token 
            FROM upvotes 
            WHERE user_token ="user_token" AND comment_token = "comment_token"
           )
   ) 
THEN (DELETE 
      FROM upvotes 
      WHERE user_token = 'user_token' AND comment_token = "comment_token"
     ) 
     AND 
     (UPDATE comments 
      SET upvote = upvote +1 
      WHERE token = "comment_token" 
     ) 
ELSE (INSERT INTO upvotes(user_token,comment_token 
      VALUES('user_token','comment_token'
     ) 
     AND 
     (UPDATE comments 
      SET upvote = upvote -1 
      WHERE token = "comment_token"
     ) 
END IF

但是发生了这个错误

Unrecognized statement type. (near "IF" at position 0) SQL query: Copy Documentation

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 02:22:24

在普通的sql查询中不能这样做。您必须在function or stored pricedure中执行此操作

代码语言:javascript
复制
DROP procedure IF EXISTS `new_procedure`;

DELIMITER $$
USE `testdb1`$$
CREATE PROCEDURE `new_procedure` ()
BEGIN
IF (EXISTS (SELECT user_token FROM upvotes WHERE user_token ="user_token" AND comment_token = "comment_token")) THEN 
    DELETE FROM upvotes WHERE user_token = 'user_token' AND comment_token = "comment_token";
    UPDATE comments SET upvote = upvote +1 WHERE token = "comment_token" ;
ELSE 
    INSERT INTO upvotes(user_token,comment_token) VALUES('user_token','comment_token');
    UPDATE comments SET upvote = upvote -1 WHERE token = "comment_token";
END IF;
END$$

DELIMITER ;

然后你会整理:

代码语言:javascript
复制
call new_procedure();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62520743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档