0

我在 MySQL 上开发我的微型消息系统。

我有表“con”:

id | user1 | user2
1  |   1   |   3
2  |   3   |   5
3  |   2   |   3
4  |   5   |   8

开,例如登录用户 id = 3。

我想从 user_id = 3 正在说话的表用户的 id 中获取。

用户 id = 3 的正确结果:

id | user_id
1  | 1
2  | 5
3  | 2

谢谢 :)

4

3 回答 3

1

您可以在where和 中使用以下条件执行此操作select

select id,
       (case when user1 = 3 then user2 else user1 end) as user
from con
where 3 in (user1, user2);

这只需要通过桌子一次。

于 2013-08-11T19:40:43.963 回答
0
SELECT a.id, a.user1 AS user_id FROM con a WHERE user2 = 3
UNION
SELECT b.id, b.user2 AS user_id FROM con b WHERE user1 = 3
于 2013-08-11T19:40:16.520 回答
0

选择两组结果(user1 = 3 和 user2 = 3)并使用 将它们合并在一起UNION

SELECT id, user1 AS user_id
FROM con
WHERE user2 = '3'

UNION

SELECT id, user2 AS user_id
FROM con
WHERE user1 = '3'
于 2013-08-11T19:37:41.640 回答