mysql查询的位置存在错误
SQL查询:mysql查询的位置存在错误,mysql,Mysql,SQL查询: SET @userID := 1; SELECT 1 AS isSmoker WHERE EXISTS (SELECT SituationID FROM usersituation WHERE UserID=@userID AND SituationID=3)
SET @userID := 1;
SELECT 1 AS isSmoker WHERE EXISTS (SELECT SituationID
FROM usersituation
WHERE UserID=@userID
AND SituationID=3);
MySQL说:
1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法
在“存在位置”附近,从用户位置中选择情景ID
第1行的UserID=@UserID和'
这是我收到的错误,但我不知道为什么会发生
单独使用时返回一行
注:
查询的目的是,如果子查询返回任何值,则
在名为isSmoker的自定义列中返回值为1的一行
您可以尝试上面的代码
这里您忘记了关键字。据我所知,如果子查询返回结果,您需要查询返回True。 试试这个:
SET @userID := 1;
SELECT 1 AS isSmoker from usersituation WHERE EXISTS ( SELECT SituationID FROM usersituation WHERE UserID=@userID AND SituationID=3);
您省略了from子句。您缺少from的内容是我不想从任何现有列中获取任何值,如果子查询为true,我只想在名为isSmokerNo的列中获取一行值1。这不是我想要的,我希望它这样做,如果子查询返回任何值,则在名为isSmokerno的自定义列中返回一行值为1,我希望它返回1表示TRUE,简言之,如果该用户的SituationID为3,那么我想返回1,以便稍后我可以使用它与其他内容进行比较。检查情景表,看看用户是否有ID=3的情景。3是吸烟者的ID。如果是,则为我返回1TRUE,我可以将其设置为变量,将此查询设置为@smoker,因此我可以使用这个答案更新了,不需要从这里使用
SELECT SituationID FROM `usersituation` WHERE UserID=@userID AND SituationID=3
SET @userID := 1;
SELECT 1 AS isSmoker from usersituation WHERE EXISTS ( SELECT SituationID FROM usersituation WHERE UserID=@userID AND SituationID=3);
SELECT CASE WHEN
EXISTS (SELECT SituationID
FROM usersituation
WHERE UserID=@userID
AND SituationID=3)
THEN '1'
END AS isSmoker