获取 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 列的唯一值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Anylogic 中的插入数据库查询基于另一列获取一列的唯一值?