Неверная последовательность в верхнем 3-м наибольшем значении в MySQL - PullRequest
0 голосов
/ 09 мая 2018

У меня есть простой скрипт, как показано ниже

<?php
    $mysqli = new mysqli("localhost","username","password","database");
    $query = "SELECT displayName,benar FROM score ORDER by benar DESC LIMIT 3";
    if ($result = $mysqli->query($query)) {
        while ($row = $result->fetch_assoc()) {
            $output[] = array(
            'displayName' => $row["displayName"],
            'benar' => $row["benar"],
            );
        }
        $result->free();
    }
    $mysqli->close();
echo json_encode($output, JSON_PRETTY_PRINT);    
?>

и из приведенного выше сценария требуется база данных mysql, следующая база данных

+++displayName+++++++benar+++
+    Georgio     +    592   +
+     Mark       +    103   +
+    Daniel      +    850   +
+     Samuel     +    1100  +
+     Rudy       +    900   +
+++++++++++++++++++++++++++++

после того, как я использую свой скрипт для вышеуказанной базы данных, я получаю вывод, как показано ниже

[
    {
        "displayName": "Rudy",
        "benar": "900"
    },
    {
        "displayName": "Daniel",
        "benar": "850"
    },
    {
        "displayName": "Samuel",
        "benar": "1100"
    }
]

Как вы можете видеть, что значение 1100 находится в самой последней части, должно ли число 1100 быть наверху, есть ли какие-либо предложения для решения этой проблемы? спасибо

1 Ответ

0 голосов
/ 09 мая 2018

Измените тип данных в столбце на «целочисленный», в настоящий момент это будет некая форма текста в минуту, и, как таковая, читает первый символ вперед, что означает, что происходит что-то вроде следующего:

9 > 8 > 1

Таким образом, изменение типа данных сделает его правильно прочитанным;

ALTER TABLE `score` MODIFY `benar` INT;

Смотрите здесь за помощью; https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

...