gpt4 book ai didi

sql - MySQL 只获取某个字段具有唯一值的行

转载 作者:行者123 更新时间:2023-11-29 04:30:13 26 4
gpt4 key购买 nike

我只想获取某个字段具有唯一值的行(实际上是 2 个)。我的 table 是这样的:

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. 1应该是senderID或者receiverID。
  2. if ((senderID == '1' && "__ receiverID is not yet listed__") || (receiverID == '1' && "__ senderID is not yet listed__")) 在伪代码。

最终返回应该是(0, 1)

我如何在 (My)SQL 中执行此操作?我确实知道如何使用 PHP 执行此操作,但是当有数千条记录时,速度就不够快了。

亲切的问候,

蒂姆

最佳答案

select min(id) from 
(
select id, senderID pID from table where receiverID = '1'
union
select id, receiverID pID from table where senderID = '1'
) as fred
group by pID;

对于您的数据集,这给出:

+---------+
| min(id) |
+---------+
| 0 |
| 1 |
+---------+

关于sql - MySQL 只获取某个字段具有唯一值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3900330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com