【问题标题】:Count occurrences of values and return them as value_name=>occurences pair计算值的出现次数并将它们作为 value_name=>occurrences 对返回
【发布时间】:2013-08-26 22:34:31
【问题描述】:

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

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

【问题讨论】:

    标签: php mysql find-occurrences


    【解决方案1】:

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

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

    【讨论】:

    • 我刚刚发现,对于超过 2 种语言,这使得无法确定哪种语言缺少翻译。如果我对存在 2 种语言的数据库进行查询,this is what I get.
    • 也就是说,检索到的信息不足。我需要知道缺少哪些翻译。不幸的是,我对 MySQL 的了解还不够,无法自己弄清楚。
    • @TomášZato 。 . .如果您想了解特定的语言,我建议您再问一个问题。非常具体地说明您需要什么才能获得理想的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 2022-06-29
    • 2017-12-01
    • 1970-01-01
    • 2020-12-20
    • 2014-09-13
    • 1970-01-01
    相关资源
    最近更新 更多