2013-08-26 31 views
0

我有一個包含重複值(語言名稱)值的列的翻譯表。由於如下因素:計算值的出現次數並將它們返回爲value_name =>出現對

id | neutral text | language | translation 
---+--------------+----------+------------ 
0 |  SUBMIT |  en |  Submit 
1 |  SUBMIT |  cs |  Odeslat 
2 |  SUBMIT |  fr | Démarrer 
3 |   DAY |  fr |  Jour 
4 |  MONDAY |  fr |  Lundi 
5 |  MONDAY |  cs |  Pondělí 

現在,你可以看到,我特意中省略,以填補DAY和週一的所有翻譯。我需要查詢的是哪些記錄不完整。這意味着,找到比其他人更少出現「中性文本」的單元格。
除了FOR循環在PHP中還有什麼可能嗎?下載整個表並循環它使MySql此時無用。

回答

1

您可以聚集和having條款做到這一點:

select neutraltext 
from t 
group by neutraltext 
having count(*) < (select count(*) from t group by neutraltext order by count(*) desc limit 1); 
+0

我剛剛發現了兩種以上的語言,這使得它無法確定哪種語言缺少翻譯。如果我對存在2種語言的DB進行查詢,[這是我得到的](http://pasteboard.co/euqpQTZ.png)。 –

+0

換句話說,檢索到的信息不足。我需要知道哪些翻譯缺失。我還沒有足夠的瞭解MySQL,不幸地想到了這一點。 –

+0

@TomášZato。 。 。如果你想知道特定的語言,我會建議你問另一個問題。針對所需的結果需要具體說明。 –