Dyl*_*oss 2 php mysql case mutual-friendship
我的'friends'表包含以下列:id,userID,userID2,state
userID和userID2没有特定的顺序放入数据库.
我目前使用此查询来查找用户朋友:
$quer = mysql_query("
SELECT CASE WHEN userID=$id THEN userID2 ELSE userID END AS friendID
FROM friends WHERE userID=$id OR userID2=$id");
Run Code Online (Sandbox Code Playgroud)
我试过这个但它不起作用:
SELECT
CASE WHEN userID=$id OR userID=$session THEN userID2
ELSE userID END AS friendID
FROM friends WHERE (userID=$session OR userID2=$session)
AND (userID=$id OR userID2=$id) AND friendID!=$session
Run Code Online (Sandbox Code Playgroud)
如果friendID = $ session(我已经添加到我的第二个查询中)它也不应该返回该行
编辑:我想返回$ id和$ session共同的friendID行.我不确定为什么它不起作用.
解释后(实际上阅读"相互"部分):
SELECT a.friendID
FROM
( SELECT CASE WHEN userID = $id
THEN userID2
ELSE userID
END AS friendID
FROM friends
WHERE userID = $id OR userID2 = $id
) a
JOIN
( SELECT CASE WHEN userID = $session
THEN userID2
ELSE userID
END AS friendID
FROM friends
WHERE userID = $session OR userID2 = $session
) b
ON b.friendID = a.friendID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |