需要MySQL SELECT来识别垃圾邮件发送者以进行删除

时间:2013-06-24 07:44:30

标签: mysql select

我正在尝试删除使用添加到用户注册脚本的PHP代码段在我的网站上注册的垃圾邮件类型用户。

我是MySQL的新手,需要一个 SELECT 语句来查找fid 2和fid 3的值相同的用户。在某些情况下,fid 2,fid 3和fid 5的值可能与下面的profile_values数据库表中显示的值相同。在这种情况下,fid 2,fid,3和fid 5的值 Mollardgasse 42 是相同的。因此该用户4138将被删除。

所以,如果fid 2和fid 3是相同的或fid 2,fid 3和fid 5是相同的,我想识别用户,所以我可以删除它们。

我知道如果用户被识别后如何删除用户,但我不知道如果满足上述条件,如何编写select语句来识别用户。

SELECT * FROM profile_values WHERE ......?

提前致谢。

fid uid     value
1   4138    Nation
2   4138    Mollardgasse 42
3   4138    Mollardgasse 42
4   4138    4770
5   4138    Mollardgasse 42
6   4138    
7   4138    Female
8   4138    30
9   4138    Significant Other
10  4138    QS
11  4138    LD
12  4138    Associates Degree
13  4138    Just enough to pay bills
14  4138    http://bodyphlo.com/studio-shoes-the-latest-in-fit...
15  4138    
16  4138    
17  4138    0
19  4138    
20  4138    
21  4138    Human
1   4137    usa
2   4137    coolhead
3   4137    kelly
4   4137    555-1212
5   4137    norwalk
6   4137    
7   4137    Female
8   4137    38
9   4137    Significant Other
10  4137    2124 livermore ave
11  4137    California
12  4137    Masters Degree
13  4137    Doing ok
14  4137    http://google.com
15  4137    
16  4137    
17  4137    0
19  4137    
20  4137    
21  4137    Human

2 个答案:

答案 0 :(得分:2)

SELECT * FROM profile_values GROUP BY fid, uid, value HAVING COUNT(value) > 1

答案 1 :(得分:1)

SELECT pv1.uid
  FROM profile_values pv1
  JOIN profile_values pv2 
       on pv1.uid = pv2.uid
      AND pv1.fid = 2
      AND pv2.fid = 3
      AND pv1.value = pv2.value