php - 计算值的出现次数并将其作为 value_name=>occurrences 对返回

标签 php mysql find-occurrences

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

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 此时毫无用处。

最佳答案

您可以使用聚合和 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/

相关文章:

php - 如何配置 phpMyAdmin 以仅为 root 用户显示特定数据库

mysql - 在一个 mysql 查询中从多个表中选择数据

awk - 删除第一次和最后一次出现列值的行

python - 每行 Numpy 中二维矩阵的滚动窗口或事件?

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

php - 缓存 Eloquent 关系查询

.net - MySQL Connector/NET 连接每个连接多个 DataReader?

java - 如何计算并仅打印重复项?

php - 为什么 MySQL 不返回最后插入的 id,它返回 0?

mysql - sphinx 的性能比 MySQL 默认的全文搜索高多少?