如何从所有行中选择相同的列?

时间:2015-12-31 11:16:47

标签: php mysql aggregate-functions

我有一个包含50行的表,每行有10列。其中一列被称为" phpclass"并持有字符串。 实际的字符串条目可以是唯一的,但它也可以在不同的行上相同,即查询过程。

我想查询该表并接收具有类似值的命中行的内容" phpclass"列。

$resultA = ["Orion", "Nova", "Alpha"];
$resultB = [1, 4, 3];

有人可以帮我创建一个查询吗?

2 个答案:

答案 0 :(得分:3)

我想你想要

 SELECT phpclass, COUNT(*) count
   FROM table
  GROUP BY phpclass

这将返回行

 Orion    1
 Nova     4
 Alpha    5

显示有多少行具有值Orion等(不一定按此顺序)。

答案 1 :(得分:1)

您应该使用GROUP BY进行查询,如下所示:

SELECT   phpclass, COUNT(*) occurences
FROM     mytable
GROUP BY phpclass

然后您可以使用类似mysqli_fetch_all的内容来检索所有行,这将为您提供以下结构:

$result = mysqli_query($con, $sql);
$result = mysqli_fetch_all($result, MYSQLI_ASSOC);
// $result will be like:
// Array(
//   Array("phpclass" => "Orion", "occurrences" => 1),
//   Array("phpclass" => "Nova", "occurrences" => 4),
//   Array("phpclass" => "Alpha", "occurrences" => 5)
// );
$resultA = array_column($result, "phpclass");
$resultB = array_column($result, "occurrences");
print_r ($resultA);
print_r ($resultB);

输出将是:

Array
(
    [0] => Orion
    [1] => Nova
    [2] => Alpha
)
Array
(
    [0] => 1
    [1] => 4
    [2] => 5
)