【发布时间】:2010-10-10 12:44:04
【问题描述】:
我只想获取某个字段(实际上是 2 个)具有唯一值的行。 我的桌子是这样的:
id senderID receiverID ... ... ...
_________________________________________________
0 0 1 ... ... ...
1 2 1 ... ... ...
2 1 0 ... ... ...
3 0 2 ... ... ...
4 2 0 ... ... ...
5 1 2 ... ... ...
在此表中,id始终是唯一的。 senderID 是发送消息的用户 ID,receiverID 是接收消息的用户 ID。 ... 是一些无关紧要的字段(例如 text),它们也不是唯一的。
首先,我想获取我(#1)是发送者或接收者的所有行。
SQL: "SELECT id FROM table WHERE senderID='1' OR receiverID='1'";
这将返回(0, 1, 2, 5)。
但是现在,我只想要所有唯一的记录。 所以条件是:
-
1应该是 senderID 或 receiverID。 -
if ((senderID == '1' && "__ receiverID is not yet listed__") || (receiverID == '1' && "__ senderID is not yet listed__"))伪代码。
最终返回应该是(0, 1)。
如何在(我的)SQL 中执行此操作?我确实知道如何使用 PHP 来做到这一点,但是当有数千条记录时,它就不够快了。
亲切的问候,
提姆
【问题讨论】:
-
所以你想要两个查询的结果一个?如果为真,您必须使用 PHP 对结果进行排序。