У меня есть таблица вроде этого:
---------------------------------------
| S No | item | Col1 | Col2 |
| ------------------------------------|
| 1 | carrot | 111 | 2 |
| 2 | broccoli | 222 | 3 |
| 3 | spinach | 333 | 2 |
| 4 | swiss | 444 | 3 |
| 5 | cheddar | 5555 | 5 |
| 6 | cheddar | 6666 | 6 |
| 7 | onion | 7777 | 3 |
Существует много столбцов, таких как Col1, Col2, Coln со всеми целыми значениями. Я хочу взять сумму всех столбцов и получить имя топ-5 столбцов с их именами и суммами в качестве ответа на запрос. Я могу сделать это с помощью 5-ти основных записей, но трудно использовать столбцы. Я делаю это для таких строк:
$q1 = mysqli_query($con, "SELECT 'File Name', 'Kudos' FROM '{$_SESSION['username']}' ORDER BY 'Kudos' DESC LIMIT 5");
while($row = mysqli_fetch_array($q1)) {
$myCols[] = $row;
}
print_r($myCols); // Works fine
print_r дает мне:
Array
(
[0] => Array
(
[0] => AAAA
[File Name] => AAAA
[1] => 343
[Kudos] => 343
)
[1] => Array
(
[0] => Test File Again
[File Name] => Test File Again
[1] => 45
[Kudos] => 45
)
[2] => Array
(
[0] => TEST FILE
[File Name] => TEST FILE
[1] => 3
[Kudos] => 3
)
)
Выглядит неплохо. Как это сделать для столбца с максимальными значениями суммы для всего столбца? Кто-нибудь там? Благодарю!
Просто добавьте их и используйте их в order by
:
SELECT 'File Name', (col1 + col2 + col3 . . . ) as totalsum
FROM '{$_SESSION['username']}
ORDER BY totalsum DESC
LIMIT 5;