mysql中前3个最大值的顺序不正确

pcrecxhr  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(332)

我有一个简单的脚本如下

<?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应该在顶部,有什么建议来解决这个问题吗?谢谢您

xpszyzbs

xpszyzbs1#

将列中的数据类型更改为“integer”,此时它将是某种形式的文本,因此从第一个字符开始读取,这意味着发生了如下情况:; 9 > 8 > 1 因此更改数据类型将使其正确读取;

ALTER TABLE `score` MODIFY `benar` INT;

请看这里寻求帮助;https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

相关问题