Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql查询的位置存在错误_Mysql - Fatal编程技术网

mysql查询的位置存在错误

mysql查询的位置存在错误,mysql,Mysql,SQL查询: SET @userID := 1; SELECT 1 AS isSmoker WHERE EXISTS (SELECT SituationID FROM usersituation WHERE UserID=@userID AND SituationID=3)

SQL查询:

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