获取 SQL 列的唯一值

Posted

技术标签:

【中文标题】获取 SQL 列的唯一值【英文标题】:Get unique values of a SQL column 【发布时间】:2012-10-20 13:22:43 【问题描述】:

假设我有一个包含一些列的表格

-conversation_id,

-col2,

-用户 ID。

我想抓取所有与 user_id 对应的行。例如,一个特定的可能返回 20 行,但只有 3 个唯一的 conversation_id 值。

获取这些值的最快方法是什么,而不是逐个检查并找出唯一的值?

我必须说,我的意思是在 php 中!

谢谢!!

【问题讨论】:

请澄清您的问题。表结构、示例数据和示例输出会有所帮助。 【参考方案1】:
$query = "SELECT DISTINCT conversation_id 
          FROM conversations 
          WHERE user_id='2'";

【讨论】:

我认为这可能有效。快速提问,这将如何与 Zend 一起工作?像这样的东西可以吗? $this->fetchAll($this->select()->where('user_id =?',$user_id)->distinct('conversation_id')); ? 我从未使用过 zend.. 抱歉,但我无法为您提供帮助.. 您应该尝试一下,看看它是否有效..【参考方案2】:
SELECT conversation_id, user_id
      FROM conversations
      GROUP BY user_id, conversation_id

【讨论】:

【参考方案3】:

你可以试试这个

select distinct conservation_id,user_id
from table 
group by user_id

【讨论】:

【参考方案4】:
SELECT DISTINCT conversation_id FROM conversations WHERE user_id = userID

Get distinct record from table using zend functions?

【讨论】:

【参考方案5】:

DISTINCT 关键字用于从结果集中仅选择唯一项。

在zend的情况下为ex:

$db->select()->distinct('u.conversation_id')->from(array('u'=>'user'))->where('u.user_id = ?',$user_id );

【讨论】:

以上是关于获取 SQL 列的唯一值的主要内容,如果未能解决你的问题,请参考以下文章

具有唯一值的列的 SQL 总和量

如何获取 HIVE/PySpark 表中每一列的唯一值?

如何使用 Anylogic 中的插入数据库查询基于另一列获取一列的唯一值?

获取数据框中列的唯一值的计数,这些值最终出现在决策树的每个叶节点中?

oracle 表列值唯一 怎么实现

SQL 来获取唯一键匹配但数据在不同表之间的某些其他列中不同的数据