gpt4 book ai didi

php - 无法让 PHP mysql 返回最高值

转载 作者:行者123 更新时间:2023-11-29 09:36:02 25 4
gpt4 key购买 nike

我在获取 PHP MySQL 查询返回最高值时遇到问题!

已经很累的修复,例如这里的示例:SQL select only rows with max value on a column。但这个修复产生了相反的效果。

$sql = "SELECT * FROM famous_birthdays WHERE sdob = '$today' ORDER BY score 
DESC LIMIT 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {

这是上面代码的输出:

a busy cat

名人姓名和精选生日下方的数字(是的,我知道精选拼写错误)是分数,精选生日应该是分数最高的名人,但正如您所看到的,情况并非如此。

使用以下代码填充“其他著名生日”框:

$sql = "SELECT * FROM famous_birthdays WHERE sdob = '$today' AND name != 
'$s_name' ORDER BY score DESC ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {

表格内容: enter image description here

最佳答案

由于您的数据类型是varchar,Mysql 不会将其视为数字或小数。它将它们视为字母并相应地排序。

因此,图像中有 2 个值 8.5 和 10.96。既然是Varchar,Mysql就会从左边开始。由于 8 大于 1,因此会认为 8.5 大于 10.96。它不会比较 8 和 10。

您需要将 varchar 转换为数字。您可以使用以下查询:

SELECT * FROM famous_birthdays WHERE sdob = '$today' ORDER BY cast(score as DECIMAL(16,14))
DESC LIMIT 1

使用cast Mysql会将它们视为数字并相应地排序。

关于php - 无法让 PHP mysql 返回最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57573839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com