我只是想查询一个表以返回一个布尔值,该值似乎只返回null。

$sTable4由列useridartistid组成

$artistid是传入脚本的参数(肯定已正确传递)

$userid是当前登录用户的ID。

用户可以将艺术家保存在他们的favourites列表中。

我想要的是检查此表是否有当前登录的用户以及上面的变量中声明的特定artistid,以查看是否存在条目。如果不是,那么我希望它返回null,如果是,则返回“ 1”。

有什么想法我要去哪里吗?

SELECT userid, artistid
FROM $sTable4 AS b
WHERE NOT EXISTS
(
   SELECT artistid
   FROM $sTable4 AS ab
   WHERE b.userid = $userid
      AND b.artistid = $artistid
)

最佳答案

没问题,实际上,您正在尝试从userid, artistid中选择$sTable4不在同一表中的where exists,那么您期望什么?如果不存在,您将如何选择它们呢!我认为您在查询中缺少某些内容,因为此检查在存在时总是返回null,因此不会选择它们。所以我认为将为您工作:

SELECT ab.artistid
FROM $sTable4 AS ab
WHERE exists
(
    select artistid
    from $sTable4 b
    where b.userid=$userid AND b.artistid=$artistid
)

10-07 14:00