错误与WHERE EXISTS mysql查询

时间:2017-08-23 09:31:44

标签: mysql

SET @userID := 1;
SELECT 1 AS isSmoker WHERE EXISTS (SELECT SituationID 
                                     FROM usersituation 
                                    WHERE UserID=@userID
                                      AND SituationID=3);

SQL查询:

 SELECT 1 AS isSmoker WHERE EXISTS (SELECT SituationID 
                                      FROM usersituation 
                                     WHERE UserID=@userID 
                                       AND SituationID=3) 
  MySQL说:

     

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近' WHERE EXISTS(选择SituationID FROM usersituation WHERE   UserID = @ userID AND'在第1行

这是我收到的错误,但我不知道为什么会这样。

SELECT SituationID FROM `usersituation` WHERE UserID=@userID AND SituationID=3

单独使用时会返回一行。

注意:

  

如果子查询返回任何值,则查询的目的是   在名为isSmoker的自定义列中返回值为1的一行

2 个答案:

答案 0 :(得分:2)

SET @userID := 1;
SELECT 1 AS isSmoker from usersituation WHERE EXISTS ( SELECT SituationID FROM usersituation WHERE UserID=@userID AND SituationID=3);

您可以尝试以上代码。

您忘记了来自关键字。

答案 1 :(得分:0)

据我所知,如果子查询返回结果,则需要查询返回True。 试试这个:

SELECT CASE WHEN 
EXISTS (SELECT SituationID 
        FROM usersituation 
        WHERE UserID=@userID 
        AND SituationID=3) 
THEN '1' 
END AS isSmoker