在mysql中:如何显示一列不同的所有列

时间:2013-11-04 11:19:56

标签: mysql

我想显示column3 = 'ffff-jhj-01'与column1的不同值。

Select distinct(name),phone,phone_id 
FROM `calldetails` 
where phone_id='ffff-jhj-01'

我已尝试过上述查询,但只显示column3 = 'ffff-jhj-01'与名称不同。

2 个答案:

答案 0 :(得分:1)

如果您希望所有列都包含distinct子句,请尝试此查询

Select distinct(name),phone,phone_id FROM `calldetails` 
where 
phone_id='ffff-jhj-01' 
GROUP BY name

分组将为您提供不同的第一列,但请记住,您不会获得第二列的不同数据。

对于这种情况,您甚至不需要distinct子句,您可以单独使用Group获得相同的输出,例如

Select name,phone,phone_id FROM `calldetails` 
where phone_id='ffff-jhj-01' 
Group by name 

两个查询的输出如下

enter image description here

如果你没有Group by,

Select distinct(name),phone,phone_id FROM `calldetails` 
where 
phone_id='ffff-jhj-01' 

然后输出如下

enter image description here

此外,您可以获得手机的所有变体细节,即。第2列带有以下查询

SELECT name, GROUP_CONCAT( phone ) , phone_id
FROM  `calldetails` 
WHERE phone_id =  'ffff-jhj-01'
GROUP BY name
LIMIT 0 , 30

enter image description here

但是电话字段应该是text / varchar字段

答案 1 :(得分:0)

尝试:

Select distinct(name),phone,phone_id FROM `calldetails` where phone_id='ffff-jhj-01'