-1

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

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

因此,如果 fid 2 和 fid 3 相同或 fid 2、fid 3 和 fid 5 相同,我想识别用户以便删除它们。

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

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
4

2 回答 2

2
SELECT * FROM profile_values GROUP BY fid, uid, value HAVING COUNT(value) > 1
于 2013-06-24T07:47:23.720 回答
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
于 2013-06-24T07:51:32.503 回答