【问题标题】:Sort by field values in MySQL Query [closed]按 MySQL 查询中的字段值排序 [关闭]
【发布时间】:2015-02-14 14:35:52
【问题描述】:

我有一个名为 tbl_posts 的 MySQL 表,其中包含 title、category、timestamp 列。

title  category  timestamp
CAT    animal    2014-12-12 05:54:49 
ROSE   flower    2014-12-12 05:54:50
APPLE  fruit     2014-12-12 05:54:51
DOG    animal    2014-12-12 05:54:52

我想要一个 MySQL 查询根据类别进行排序。 当我搜索“动物”类别时,CAT 和 DOG 想先显示,然后再附加其他类别。我想要的输出如下

   title  category  timestamp
    DOG    animal    2014-12-12 05:54:52
    CAT    animal    2014-12-12 05:54:49 
    ROSE   flower    2014-12-12 05:54:50
    APPLE  fruit     2014-12-12 05:54:51

提前致谢。

【问题讨论】:

  • 您自己尝试过吗?你搜索过类似的问题吗?
  • 首先尝试查询自己。仅在遇到困难时才向其他人询问。
  • 我尝试了 ORDER BY 等并被击中。那是 Y 我在这里..

标签: mysql sorting


【解决方案1】:

咳咳,查询(根据您显示的内容)以获得该结果

SELECT *
FROM myTable
ORDER BY category ASC, timestamp DESC

【讨论】:

  • 为什么是-1 downvoter?
  • 我投了反对票,因为这个答案没有正确解决这个问题。请参阅我上面的答案以获取可行的解决方案(尽管相当不雅)
【解决方案2】:

这应该通过 ORDER BY 子句来完成,如下所示:

SELECT title, category, timestamp
FROM tbl_posts
ORDER BY category  

【讨论】:

  • 当我搜索花卉类别时,我想显示该类别下的所有结果,同时我也想显示其他类别的结果。必须先显示搜索类别并附加其他下一个类别
  • 抱歉,这是另一个后续问题。我会说你通过关闭这个论坛在这个论坛上提出了另一个问题。
  • @almasshaikh 不,不是。这个答案不完整。
【解决方案3】:
SELECT DISTINCT y.* 
  FROM my_table x 
  JOIN my_table y 
    ON y.category = x.category  
 ORDER 
    BY y.title = 'dog' DESC
     , y.category;

或者类似的东西

【讨论】:

  • 伟大的工作.. 工作正常.. 非常感谢你
猜你喜欢
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 2010-09-28
  • 2022-08-19
  • 2013-01-25
  • 2015-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多