我有一个翻译表,其中的列重复包含值(语言名称)。如下:

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和MONDAY的所有翻译。我需要通过查询查找的是哪些记录不完整。这意味着,查找“中性文本”出现次数比其他情况少的单元格。
除了FOR循环在PHP中还有其他可能吗?下载整个表并对其进行循环使MySql在此刻无用。

最佳答案

您可以使用聚合和having子句来做到这一点:

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

关于php - 计算值的出现并将其作为value_name => occurrences对返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18454145/

10-13 00:52