gpt4 book ai didi

php - 计算不同列mysql中的相同值

转载 作者:行者123 更新时间:2023-11-29 01:41:05 24 4
gpt4 key购买 nike

我需要计算同一个 ID 在不同列中的相同值被成熟了多少次。我将尝试用一个例子来澄清:表:

+-----+-----+-----+-----+-----+
| id | d01 | d02 | d03 | d04 |
+=====+=====+=====+=====+=====+
| 1 | A | A | B | B |
+-----+-----+-----+-----+-----+
| 2 | A | A | A | A |
+-----+-----+-----+-----+-----+
| 3 | B | B | A | A |
+-----+-----+-----+-----+-----+
| 4 | A | A | A | A |
+-----+-----+-----+-----+-----+
| 5 | A | A | A | A |
+-----+-----+-----+-----+-----+
| 6 | B | A | A | A |
+-----+-----+-----+-----+-----+

我需要知道值“B”对于任何人 (ID) 重复了多少次..

这有可能吗? 结果

+-----+-----+-----+
| id | count B |
+=====+=====+=====+
| 1 | 2 |
+-----+-----+-----+
| 2 | 0 |
+-----+-----+-----+
| 3 | 2 |
+-----+-----+-----+

我正在考虑使用函数“SUM”,但我不知道如何只显示单个 ID。在此先感谢,希望问题足够清楚!

最佳答案

如果只有四列:

SELECT id, (d01 = 'B') + (d02 = 'B') + (d03 = 'B') + (d04 = 'B')
FROM tablename

No there are 31 columns

这是一个您可以通过两种方式解决的问题:

  1. 对其他 27 列重复该条件 :)
  2. 规范化您的结构,使每个值都依赖于 id 和表示日历的数值。

PHP之道

您还可以获取所有列并让 PHP 为您解决这个问题:

$res = $db->query('SELECT * FROM tablename');
foreach ($res->fetchAll(PDO::FETCH_ASSOC) as $row) {
$id = $row['id'];
unset($row['id']); // don't count the id column
$count = count(array_keys($row, 'B', true));

printf("ID %d: %d\n", $id, $count);
}

关于php - 计算不同列mysql中的相同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com