我有一张桌子用于"添加朋友"这是表: -
tb_addfriend
id mainUid Uid
--------------------
1 12 8
2 8 7
3 8 2
4 4 8
我想获得id = 8的朋友。我尝试了这样的查询
Select mainUid from tb_addfriend where mainUid=8 OR Uid=8
结果就像这样
mainUid
--------
12
8
8
4
但我需要这样的结果
-----------
12
7
2
4
怎么可能。
答案 0 :(得分:3)
SELECT CASE WHEN mainUid=8 THEN Uid ELSE mainUid END
FROM tb_addfriend
WHERE mainUid=8 OR Uid=8
答案 1 :(得分:2)
您正在选择mainUid列作为结果。但是mainUid列不包含'7'或'2'值。
您需要确定何时需要使用CASE语句选择mainUid或Uid。然后,当mainUid字段为8时,您可以使用Uid字段。
SELECT
CASE mainUid
WHEN 8 THEN Uid
ELSE mainUid
END CASE
FROM tb_addfriend
WHERE mainUid=8 OR Uid=8;
答案 2 :(得分:1)
尝试以下查询。
select main from tbl_1 where main<>8 union
select uid from tbl_1 where uid<>8 order by main desc
您可以使用UNION运算符组合两个或多个SELECT语句的结果集。