我有一个名为SELECT REPLACE(field3, ",", "") AS Country, COUNT(field3)
FROM `resource`
WHERE ref > 0
GROUP BY Country;
的数据库表,其中包含3列:friends
,added_by
和added_who
。
在PHP脚本中,我尝试使用以下查询返回特定用户的朋友:
added_time
如何抓取朋友的用户ID,因为它可能位于SELECT *
FROM friends
WHERE added_by = '$specific_user_id'
OR added_who = '$specific_user_id';
或added_by
列中,具体取决于谁先添加了谁。我知道如何做到这一点很长,比如检查added_who
是否真实,那么朋友的ID是added_who == $specific_user_id
列,反之亦然但我想知道如果有更快,更好的方法。
答案 0 :(得分:1)
使用 CASE 语句。有关更多信息,请参阅CASE的MySQL文档。
应用的一个例子是:
SELECT CASE added_by WHEN '$specific_user_id' THEN added_who ELSE added_by END as friend_id
FROM friends
WHERE added_by = '$specific_user_id'
OR added_who = '$specific_user_id';
答案 1 :(得分:0)
您可以使用简单的IF
语句。
SELECT *, IF(added_by = '$specific_user_id', added_who, added_by) AS friend_id
FROM friends
WHERE added_by = '$specific_user_id'
OR added_who = '$specific_user_id';
答案 2 :(得分:0)
尝试此查询,它是您要创建的2个查询之间的简单联合
SELECT added_who FROM friends
WHERE added_by = '$specific_user_id'
UNION
SELECT added_by FROM friends
WHERE added_who = '$specific_user_id'