【问题标题】:display mysql-table - wrong order displayed [duplicate]显示 mysql-table - 显示错误的顺序 [重复]
【发布时间】:2017-08-26 02:48:50
【问题描述】:

php sn-p:

mysqli_select_db($con,"dbtest");
$sql="SELECT * FROM w3school";
$result = mysqli_query($con,$sql);


echo "<ul id='myUL'>";
while($w3school = mysqli_fetch_array($result)) {
    echo "<li id='".$w3school['id']."'>" . $w3school['LastName'] . "</li>";
}
echo "<ul>";

屏幕输出如下所示:

id = 5;
id = 4;
id = 3;
id = 1;
id = 2;

我不明白为什么它不是 1,2,3,4 ...

有什么建议吗? (任何规格信息都让我知道)

【问题讨论】:

  • 在没有ORDER BY 子句的 SQL 中不能保证顺序
  • 这对我的问题毫无意义 - 关键是我找不到其他答案,因为我不知道 order 属性。所以我什至不知道首先要搜索什么。
  • 您在打开关于 SO 的问题之前没有在网上搜索 mysql order,从而降低了您的问题。在发布问题stackoverflow.com/help/how-to-ask 之前,您应该做一些最少的研究
  • 重点是我只看到了问题并没有看到“订单”,否则我就不必问了,因为我已经知道解决方案了......

标签: php mysql sql


【解决方案1】:

您的查询需要order by

SELECT * FROM w3school order by id

【讨论】:

  • 哇,这很容易。谢谢
  • @Nasdert 乐于助人!
【解决方案2】:

您需要使用 order by where 归档需要按照您想要的 id 进行排序 -> 1,2,3,4...

SELECT * FROM w3school order by id asc;

或者简单的

 SELECT * FROM w3school order by id; // no need to add asc, default asc

如果你想要 6,5,4,3,2,1 然后使用 order by desc like

SELECT * FROM w3school order by id desc;

你可以像这样使用多个订单

SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;

更多信息

https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html

【讨论】:

    猜你喜欢
    • 2020-08-13
    • 2017-12-04
    • 2019-09-02
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    相关资源
    最近更新 更多