2017-07-19 64 views
1

下面我有一個MySQL數據庫,其中"id"只是每行的一個id。 「問題」顯示問題的編號。有四個問題,11, 12, 13 and 14。對於每個問題,用戶都有四個答案選項(1,2,3 and 4),它存儲在"answer"列中。 "user"列指示接聽的用戶。在這個例子中,我們有用戶10,11和12在同一表格內匹配

id  question answer  user 
1   11   2  10 
2   12   2  10 
3   13   3  10 
4   14   4  10 
5   11   2  11 
6   12   2  11 
7   13   4  11 
8   14   1  11 
9   11   2  12   
10   12   2  12 
11   13   1  12 
12   14   1  12 

假設用戶10是基準用戶,這意味着我想知道用戶如何以及10輪與其他的比賽。如何使用SQL代碼和/或 php代碼如何匹配用戶的答案,以便我以最高的百分比顯示的百分比匹配百分比。所以在這個例子中我正在尋找類似的東西。

 user  percent  
1  11  50% 
2  12  75% 

我不確定這是否只有SQL一路可能。也許需要一些PHP來將計數轉換爲例如。

+0

假設這是正確的,那麼使用SQL和PHP的組合可能會更好。 – chris85

+0

不錯的問題,但你到現在有什麼嘗試嗎? –

回答

0

最後我得到了你想要的輸出
試試這個:

SELECT * ,round(count(*)/(SELECT count(*) FROM `list` where user=10)*100) as 
pecentage FROM `list` as l where l.answer=(SELECT m.answer FROM `list` as m 
where m.user=10 and l.question=m.question) group by (l.user) order by pecentage 

它會產生出把儘可能

enter image description here

,您可以在如果你沒有條件添加l.user!=10想要user 10值。

+0

如果它的工作給你一個拇指:) –

+0

太棒了!完美的作品!好工作!!以及在哪裏準確添加「l.user!= 10」? –

+0

SELECT *,round(count(*)/(SELECT count(*)FROM'list' where user = 10)* 100) pecentage FROM'list' as l where l.answer =(SELECT m.answer FROM' list'as m where m.user = 10 and l.question = m.question)and l.user!= 10 group by(l.user)order by pecentage –