为什么这个mysql查询只返回null?

为什么这个mysql查询只返回null?,mysql,Mysql,我只是试图查询一个表以返回一个布尔值,它似乎只返回null $sTable4由列userid和artistid $artistid是传递到脚本中的一个参数(肯定正确传递了该参数) $userid是当前登录用户的id 用户可以将艺术家保存到他们的收藏列表中 我想检查这个表中当前登录的用户和上面变量中声明的特定artistid,看看是否存在条目。如果不是,那么我希望它返回null,如果是,则返回'1' 你知道我哪里出错了吗 SELECT userid, artistid FROM $sTable4

我只是试图查询一个表以返回一个布尔值,它似乎只返回null

$sTable4
由列
userid
artistid

$artistid
是传递到脚本中的一个参数(肯定正确传递了该参数)

$userid
是当前登录用户的id

用户可以将艺术家保存到他们的
收藏
列表中

我想检查这个表中当前登录的用户和上面变量中声明的特定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
)

没有问题,实际上您正在尝试从
$sTable4
中选择
userid,artistid
,如果它们不在同一个表中,那么您期望得到什么?如果它们不存在,您将如何选择它们?!!我认为您的查询中缺少了一些内容,因为此检查将始终返回null,因为它们存在,所以它不会选择它们。所以我认为,
在哪里存在
将像这样为您工作:

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

哦,天哪。似乎我所要做的就是删除“NOT”并使用EXISTS functin。现在它工作得很好。看来我只是把这两个函数搞混了。。。真尴尬!无论如何,谢谢你(MGA.)