【问题标题】:Sort database results starting at specific values first Kohana PHP首先从特定值开始对数据库结果进行排序 Kohana PHP
【发布时间】:2014-02-21 11:16:50
【问题描述】:

我正在对我的数据库中的结果进行排序,但对于其中一个,我想首先显示特定值,下面是我目前对它们进行排序的方式,store_typeDESC

elseif (Session::Instance()->get('country') == 'it') {
                            $stmt->order_by('`store_type`', 'DESC');

这很好用,但是我想更改顺序,以便首先显示 id 为 8、9、10 的值,然后是所有其他结果,目前它以 id 13 开头,因为这是我的表的结尾和它正在排序DESC

谁能指出我如何实现这一目标的正确方向?我正在使用 Kohana 框架。

【问题讨论】:

    标签: php mysql sorting kohana


    【解决方案1】:

    如果我理解正确,您必须将 DESC 更改为 ASC

    elseif (Session::Instance()->get('country') == 'it') {
                            $stmt->order_by('`store_type`', 'ASC');
    

    【讨论】:

      【解决方案2】:

      试试这个

      order by case when store_type in (8,9,10) then 1 else store_type end,store_type DESC
      

      【讨论】:

        【解决方案3】:

        试试这个...

         order by find_in_set(`store_type`, '10,9,8') desc;
        

        【讨论】:

          【解决方案4】:

          如果您要求升序,那么只需将您的 DESC 替换为 ASC。如果您不想要这样的ans,请详细说明,以便我们为您提供帮助。

          elseif (Session::Instance()->get('country') == 'it') { $stmt->order_by('store_type', 'ASC');

          【讨论】:

          • 不完全,因为我的结果的 id 范围是 1-13,所以如果我更改为 ASC,它将从 1 开始,但我希望它先从 8、9、10 开始显示其余部分。
          猜你喜欢
          • 2011-02-18
          • 1970-01-01
          • 2019-03-07
          • 2016-03-10
          • 2021-12-12
          • 1970-01-01
          • 2013-12-06
          • 2013-02-10
          • 2012-12-15
          相关资源
          最近更新 更多