swuhvxee
V2EX  ›  问与答

新手请教一个关于 MySQL 和 PHP 取值排序的问题

  •  1
     
  •   swuhvxee · Feb 1, 2018 · 2671 views
  •   You need to sign in to view this topic
    This topic created in 3161 days ago, the information mentioned may be changed or developed.

    现在通过 sql 按照时间排序取出最新的 50 条商品数据, 然后 while 输出这 50 条商品信息。

    同时,需要取出这 50 条中点击量最高的 1 条或者多条信息,怎么做?

    wayne712
        1
    wayne712  
       Feb 1, 2018   ❤️ 1
    遍历 50 条商品信息, 将所有点击量数据存到另外一个数组, 然后对这个点击量数组进行排序, 最后根据已排序的点击量数组下标值反查商品信息数组即可
    swuhvxee
        2
    swuhvxee  
    OP
       Feb 1, 2018
    @wayne712 是在 while 中把点击量存入数组进行比较,然后取出最大的吧。我也这么想过,有没有更简单的方法呢
    swuhvxee
        3
    swuhvxee  
    OP
       Feb 1, 2018
    @wayne712 因为新手,我也想到了这个办法,总觉得是个笨办法,是我的幻觉还是只能这么解决
    wellCh4n
        4
    wellCh4n  
       Feb 1, 2018
    写两条 sql,一条获取 50 条,一条获取 50 条里面点击量最高的那条
    eslizn
        5
    eslizn  
       Feb 1, 2018
    点击量有在商品中存储么?有的话 usort 一下就可以了
    zakokun
        6
    zakokun  
       Feb 1, 2018
    你要取最新的 50 条,然后这 50 条中拿最高的 N 条

    那自然就是数据库 select 50 个呗,拿出来以后 foreach 排序。 这思路很自然 你还想怎么优化?
    swuhvxee
        7
    swuhvxee  
    OP
       Feb 1, 2018
    @eslizn
    @zakokun 这样 usort,foreach 排序会不会打乱原有的 50 条排序
    swuhvxee
        8
    swuhvxee  
    OP
       Feb 1, 2018
    @eslizn
    @zakokun
    这个需求确实很蛋疼,又要按照时间排序输出商品列表。
    又要输出其中这些商品的热门商品
    swuhvxee
        9
    swuhvxee  
    OP
       Feb 1, 2018
    此问题已解决。感谢解惑
    b821025551b
        10
    b821025551b  
       Feb 1, 2018
    这个需求本身就很矛盾吧。。。。
    swuhvxee
        11
    swuhvxee  
    OP
       Feb 1, 2018
    @b821025551b 不矛盾啊,时间排序和热门排序本身就不矛盾。。。关键是我在练习这个项目中,不想额外添加 sql,因为不知道是否可以在一个动作内解决
    zakokun
        12
    zakokun  
       Feb 1, 2018
    @swuhvxee 你用个新的数组处理排序啊, 这种需求很正常吧,多做做就好 比如很多的最新 50 个的榜单,然后给这 50 个中最热门的标记一个『最热』之类的,正常
    swuhvxee
        13
    swuhvxee  
    OP
       Feb 1, 2018
    @zakokun 我也是这么做的,把点击量放到一个数组里比较然后找出下标来判断了。感谢你的回答
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3480 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 05:10 · PVG 13:10 · LAX 22:10 · JFK 01:10
    ♥ Do have faith in what you're doing.