我有一个翻译表,其中的列重复包含值(语言名称)。如下:
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/