php - mysql中前3个最大值的顺序不正确
问题描述
我有一个简单的脚本,如下所示
<?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 应该在顶部,有什么建议可以解决这个问题吗?谢谢你
解决方案
将列中的数据类型更改为“整数”,它目前将是某种形式的文本,因此首先读取字符,这意味着正在发生以下情况;
9 > 8 > 1
所以改变数据类型会使其正确读取;
ALTER TABLE `score` MODIFY `benar` INT;
请参阅此处寻求帮助; https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
推荐阅读
- shell - 如何使用 LDAP 按字母顺序获取搜索结果
- javascript - mocha.opts 文件中的 --reporter 规范是什么?
- php - Paypal REST API 如何设置账单信息
- java - 执行了不正确的方面类基于 Spring AOP Schema
- c# - 使用 asp.net core Kestrel 从本地文件夹提供静态文件
- javascript - 在谷歌地图标记中添加多个标签
- ios - Flutter_tts 无法在 iOS 上运行
- maven - 无法在 Bitbucket 管道上解决 Maven 中的依赖关系
- python - 如何使用 jinja 和烧瓶将 url 传递给 img 标签
- node.js - VsCode clean Typescript 项目没有自动导入建议