我正在尝试创建一个用户活动供稿,该供稿仅显示作为已登录用户的朋友的用户活动。
字段user1和user2是朋友请求发件人和朋友请求接收者。问题是登录用户可能在任何一个字段中,所以我想知道如何为这个特定问题制作一个if..else
语句。
基本上我想要:
IF user2 is $log_username SELECT user1 FROM friends...
ELSE
SELECT user2 FROM friends.
粗体代码(子查询)是我特指的那个。
$sql = "
SELECT * FROM status
WHERE author in (
SELECT user2 FROM friends
WHERE user1='$log_username'
AND accepted='1'
OR user2='$log_username'
AND accepted='1'
) AND type='a'
";
非常感谢任何帮助。
答案 0 :(得分:1)
使用UNION:
$sql = "SELECT * FROM status WHERE author IN
(SELECT user1 FROM friends WHERE user1='$log_username' AND accepted='1'
UNION
SELECT user2 FROM friends WHERE user2='$log_username' AND accepted='1')";
答案 1 :(得分:0)
SQL语句中的IF
为CASE
。这样的事情(不确定这是否能给你你想要的东西,只是为了展示这个概念)。
$sql = "
SELECT * FROM status
WHERE author in (
SELECT CASE WHEN user2 = '$log_username' THEN user1 ELSE user2
END
FROM friends
WHERE user1='$log_username'
AND accepted='1'
OR user2='$log_username'
AND accepted='1'
) AND type='a'
";