查询仅选择仅具有单个状态的行

时间:2015-05-28 01:02:03

标签: php mysql select

我有一张同一电话号码的倍数表,我只想选择只有一个状态的号码。

因此出了这个例子......

  555-554-5444  NH
  555-555-5555  NH
  555-555-5555  DNC
  555-555-5555  INC
  555-554-5444  NH
  555-554-5444  NH
  555-555-5555  NH

我只想回来

  555-554-5444

因为它是唯一一个只有NH作为其状态的号码。

我知道这很简单,我觉得因为要问这个问题我真的很蠢......但是我不知道我的生活会怎么做。

3 个答案:

答案 0 :(得分:2)

您可以按电话号码汇总,然后选择仅包含您要查找的状态的电话号码:

select phonenumber
from table t
group by phonenumber
having min(status) = 'NH' and min(status) = max(status)

答案 1 :(得分:0)

使用纯mysql,您可以使用group byhaving count

代码:

SELECT *, COUNT(phoneNumber) FROM table GROUP BY status HAVING COUNT = 1

它可能有语法错误,但它的方法

这个查询的作用是按电子号码状态对电话号码进行分组并计算电子邮件,因此如果您的计数器只找到1,那就是您的行

答案 2 :(得分:0)

SELECT phone_number, COUNT(DISTINCT(status)) AS count_status
FROM tablename
GROUP BY phone_number
HAVING count_status = 1;