php 网页 order by 排序无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 网页 order by 排序无效相关的知识,希望对你有一定的参考价值。

SELECT ad_id,ad_date_begin,ad_type,ad_title,ad_description,ad_price,ad_status FROM ads WHERE ad_status=1 ORDER BY ad_date_begin DESC
无论 ORDER BY 什么,也无论 DESC 还是 ASC 都是乱序排列,请教会是什么因素影响?

SQL代码看了 没看出有什么问题,是否编码有问题?是否有主键,排序的字段是否为数字类型 如果为字符类型的话 排序是会不准确.
新手 建议在 phpmysqladmin里执行下语句看是否有效 再写代码
参考技术A sql语句完全没有问题。

php查询使用“Order By .... Limit”后如何使用“Order by”?

【中文标题】php查询使用“Order By .... Limit”后如何使用“Order by”?【英文标题】:php query how to use "Order by" after using "Order By .... Limit"? 【发布时间】:2020-11-19 14:28:31 【问题描述】:

我想在我的 php 网站上显示 10 个最新项目的排序功能。

所以通常会显示 10 个按创建日期排序的最新项目,我想对这 10 个项目按价格排序。

总共有大约 100 个项目

table1 包含“项目编号”、“创建日期”

table2 包含 'item number','price'

我首先通过连接两个表来获取整个数据集,按创建日期排序,然后将前 10 个结果作为最新项目。在这一点上,它显示了我想要的。

$sql_All_Item="SELECT * FROM table1 LEFT JOIN table12 ON table1.ITEM_NO = table2.ITEM_NO ORDER BY table1.Create_Date DESC LIMIT 10";

但我不知道如何在此查询中为另一个“排序依据”创建排序功能,以获取最新的 10 件商品并显示这 10 件商品的价格下降或上升。

【问题讨论】:

如果你把价格放在第二位,商品是按价格排序的,当它们有相同的创建日期时,你为什么不给我们一些你想要的数据和结果 请***.com/help/minimal-reproducible-example分享一些样本和预期结果。小心拼写错误 table2 而不是 table12 【参考方案1】:

您需要嵌套查询,并在外部查询中执行最终排序:

SELECT *
FROM (
    SELECT *        -- better enumerate the columns here than use "*"
    FROM table1 t1  -- table aliases make the query easier to write and read
    LEFT JOIN table2 t2 ON t1.ITEM_NO = t2.ITEM_NO 
    ORDER BY t1.Create_Date DESC 
    LIMIT 10
) t
ORDER BY price desc

【讨论】:

看来这就是我需要的! ) t 做什么?

以上是关于php 网页 order by 排序无效的主要内容,如果未能解决你的问题,请参考以下文章

mysql order by无效问题

php排序比mysql“order by”好吗?

PHP MySQL Order By

php查询使用“Order By .... Limit”后如何使用“Order by”?

PHP MySQL Order By 关键词

MySQL中order by排序时,数据存在null咋办