【问题标题】:Sort High To Low SQL PHP [duplicate]从高到低排序SQL PHP [重复]
【发布时间】:2020-03-30 20:19:10
【问题描述】:

我对桌子的选择有很大的问题。我想从最高到最低向我展示,只是它在我看来是这样的

NAME               `POINTS`

John Doe            0
John Doe2           432
John Doe3           64
John Doe4           0
John Doe5           138

我想从最高到最低显示,在数据库中有超过 432 分的人没有显示它

 <?php 
$query = sql()->query('SELECT * FROM `PlayersData` WHERE `Points` BETWEEN 0 AND 1000 LIMIT 5');
if( $query->num_rows == 0 ) {
    echo '<div class="nores">No records found.</div>';
} else {
    while( $row = $query->fetch_object() ) {
        $row = (object) $row;
    ?> 
    <div class="row">
                  <div><?php echo $row->SteamID ?></div>
                  <div>
                    <?php echo $row->Points ?>                      </div>
                </div>
    <?php
    }
}

?>

【问题讨论】:

  • 你需要做ORDER BY Points DESC才能得到从最高到最低。 (在 WHERE 之后,在 LIMIT 之前。)
  • @jarlh 我尝试这样做只是因为它向我展示了那些分数低于 100 的人,而其他人的分数大于这些
  • 我不明白你的意思?顺便说一句,为什么介于 0 和 1000 之间?你不想要超过 1000 分的用户吗?

标签: php sql


【解决方案1】:

添加一个ORDER BY,使用DESC首先获得最高值。

SELECT * FROM `PlayersData` WHERE `Points` BETWEEN 0 AND 1000
ORDER BY Points DESC 
LIMIT 5

如果数据类型不是整数,在订购时cast它:

SELECT * FROM `PlayersData` WHERE `Points` BETWEEN 0 AND 1000
ORDER BY cast(Points as integer) DESC 
LIMIT 5

【讨论】:

  • 我打错字了,100 而不是 1000,我看到后更正了。再试一次。
  • 好吧,我想从 1000 年开始一切
  • 错字更正后,我的查询是做什么的。
  • 不工作...看起来一样
猜你喜欢
  • 2023-03-21
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
  • 2017-11-23
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多