2013-08-26 29 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。 。 。如果你想知道特定的语言,我会建议你问另一个问题。针对所需的结果需要具体说明。 –