将mysql数据库中的用户输入与php进行比较

时间:2011-08-15 16:05:06

标签: php mysql performance comparison hash

我有一个表格可以存储用户对很多问题的选择 选择是A,B或C.(或0,1,2但每个问题限于3个相同的值) 所以表格如下:

question user choice
1        1    A
1        2    A
1        3    B
2        1    C
2        2    A
2        3    B
3        1    B
3        2    C
3        3    B
.        .    .
.        .    .
.        .    .
N        N    N

我想要做的是比较选择和组用户使用相同的选项,如last.fm邻居。

我可以将一个用户与另一个用户进行IN和NOT IN查询比较,或者选择所有行并与php的数组函数进行比较。但随着数据库的发展,这种方法将不可行,而且这也只比较了两个用户。

也许以我无法想象的方式散列用户的选择可以帮助。

1 个答案:

答案 0 :(得分:0)

SELECT a.user, b.user, COUNT(*) AS common
FROM Choice a
LEFT JOIN Choice b 
       ON a.user != b.user 
      AND a.question = b.question 
      AND a.choice = b.choice 
GROUB BY a.user, b.user

将为两个用户返回他们以相同方式回答了多少问题。也许这有帮助。