У меня есть таблица с 50 строками и по 10 столбцов в каждой. Один из столбцов называется «phpclass» и содержит строку.
Фактическая запись строки может быть уникальной, но она также может быть одинаковой в разных строках, то есть в ходе запроса.
Я хотел бы сделать запрос к таблице и получить что-то по хитам с аналогичным значением в столбцах «phpclass».
то есть
$resultA = ["Orion", "Nova", "Alpha"];
$resultB = [1, 4, 3];
Может ли кто-нибудь помочь мне создать запрос для этого?
Вы должны сделать запрос с 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
)
Я думаю ты хочешь
SELECT phpclass, COUNT(*) count
FROM table
GROUP BY phpclass
Это вернет вам строки
Orion 1
Nova 4
Alpha 5
показывая сколько строк имеют значения Orion
и т. д. (не обязательно в таком порядке).