我只是试图查询一个表来返回一个布尔值,它似乎只返回null。
$sTable4
由列userid
&列组成。 artistid
$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
)
答案 0 :(得分:1)
没有错,实际上你试图从同一个表中不存在的userid, artistid
中选择$sTable4
,那么你期望什么?如果它们不存在你会如何选择它们? ?!!我认为你在查询中遗漏了一些东西,因为这个检查总是会返回null,因为它们存在,所以它不会选择它们。所以我认为where exists
会对你有用:
SELECT ab.artistid
FROM $sTable4 AS ab
WHERE exists
(
select artistid
from $sTable4 b
where b.userid=$userid AND b.artistid=$artistid
)