选择具有相同列的行

时间:2014-02-07 05:58:02

标签: php mysql sql

我的表格数据为:

C1    ||   C2    || C3  
-------------------
1     || user1   || 2  
2     || user2   || 2   
3     || user3   || 3 
4     || user4   || 3 
5     || user5   || 3  
6     || user6   || 2  

我想选择列C3相等值的所有行。

4 个答案:

答案 0 :(得分:3)

使用派生表计算重复项,然后再加入到这个:

SELECT mt.*
FROM MyTable mt
JOIN
(
  SELECT C3, COUNT(*)
  FROM MyTable
  GROUP BY C3
  HAVING COUNT(*) > 1
) X
ON mt.C3 = X.C3;

SqlFiddle here

显然,在您的示例中,所有用户至少有一个具有相同C3值的其他用户。

答案 1 :(得分:1)

只需进行分组并找出所需的C3值,然后选择它们

select * 
from table
where c3 in 
(
 select c3, count(c1) as tot
 from table 
 group by c3
 having count(c1)>=2
)

答案 2 :(得分:0)

如果要在该列上获取具有特定值的行,请从表中选择*,其中c3 ='value' 如果你想一个接一个地获得具有相同c3的列出行 从表格组中选择*按c3

答案 3 :(得分:0)

如果要选择值为3

的行
SELECT * FROM table WHERE C3=3;

或者您想要选择列C3包含值的行:

SELECT * FROM table WHERE C3 IS NOT NULL;