按两列字符串排序

Sort by string with two columns

我有一个 table 'relationships' 如下所示

id | user_1_nick | user_2_nick

 1   peter         kevin
 2   jake          peter
 3   peter         abby
 4   aaron         abby
 5   abby          kevin

因此,如果 Peter 登录,他的 'friends' 将显示如下

1    abby
2    jake
3    kevin

和 Abbys 'friends' 如下

1    aaron
2    kevin
3    peter

希望你能理解我。 提前致谢。

更新

我当前的查询如下所示:

SELECT * FROM relationships AS r 
LEFT JOIN members AS m 
ON (r.user_2 = m.hash AND r.user_2 != '$userhash') 
OR (r.user_1 = m.hash AND r.user_1 != '$userhash') 
WHERE (user_2 = '$userhash' OR user_1 = '$userhash') 
AND accepted = '1'

在MySQL

您必须双向过滤好友,然后合并结果,如下图所示。

所以 peter 的朋友可以通过查询获取:

SELECT A.FRIENDS FROM 
(SELECT user_2_nick friends FROM relationships
WHERE user_1_nick='peter'
UNION
SELECT user_1_nick friends FROM relationships
WHERE user_2_nick='peter') A
ORDER BY A.FRIENDS;

对于 abby 有:

SELECT A.FRIENDS FROM 
(SELECT user_2_nick friends FROM relationships
WHERE user_1_nick='abby'
UNION
SELECT user_1_nick friends FROM relationships
WHERE user_2_nick='abby') A
ORDER BY A.FRIENDS;

这里是SQL FIDDLE DEMO