Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按顺序排列_Mysql - Fatal编程技术网

Mysql 按顺序排列

Mysql 按顺序排列,mysql,Mysql,我在MySQL查询中使用了这个ORDERBY子句: "ORDER BY FIELD(best_id.status, 'open', 'bekeken', 'verstuurd', 'binnen'), best_id.datum_leveren ASC 很好 现在,我想对行进行排序,ASC与DESC相结合。我一直试图通过将子句更改为: ORDER BY FIELD(best_id.status, 'open', 'bekeken', 'verstuurd', 'binnen'), CASE W

我在MySQL查询中使用了这个ORDERBY子句:

"ORDER BY FIELD(best_id.status, 'open', 'bekeken', 'verstuurd', 'binnen'), best_id.datum_leveren ASC
很好

现在,我想对行进行排序,ASC与DESC相结合。我一直试图通过将子句更改为:

ORDER BY FIELD(best_id.status, 'open', 'bekeken', 'verstuurd', 'binnen'),
CASE WHEN best_id.status = 'binnen' THEN  best_id.datum_leveren DESC, END
ELSE best_id.datum_leveren ASC END";
但我不能让它工作。在ORDER BY子句中使用案例的正确方式是什么

非常感谢您的帮助。

您可以使用

ORDER  BY CASE
            WHEN best_id.status = 'binnen'
              THEN best_id.datum_leveren
            ELSE NULL
          END DESC,
          CASE
            WHEN best_id.status = 'binnen'
              THEN NULL
            ELSE best_id.datum_leveren
          END ASC 
你可以用

ORDER  BY CASE
            WHEN best_id.status = 'binnen'
              THEN best_id.datum_leveren
            ELSE NULL
          END DESC,
          CASE
            WHEN best_id.status = 'binnen'
              THEN NULL
            ELSE best_id.datum_leveren
          END ASC 
你可以用

ORDER  BY CASE
            WHEN best_id.status = 'binnen'
              THEN best_id.datum_leveren
            ELSE NULL
          END DESC,
          CASE
            WHEN best_id.status = 'binnen'
              THEN NULL
            ELSE best_id.datum_leveren
          END ASC 
你可以用

ORDER  BY CASE
            WHEN best_id.status = 'binnen'
              THEN best_id.datum_leveren
            ELSE NULL
          END DESC,
          CASE
            WHEN best_id.status = 'binnen'
              THEN NULL
            ELSE best_id.datum_leveren
          END ASC 

你需要2个案例陈述;asc或desc适用于整个语句。@Robert-在我看来不像是一个傻瓜。这似乎是关于在同一个case表达式中以相同的排序顺序选择不同的列;asc或desc适用于整个语句。@Robert-在我看来不像是一个傻瓜。这似乎是关于在同一个case表达式中以相同的排序顺序选择不同的列;asc或desc适用于整个语句。@Robert-在我看来不像是一个傻瓜。这似乎是关于在同一个case表达式中以相同的排序顺序选择不同的列;asc或desc适用于整个语句。@Robert-在我看来不像是一个傻瓜。这似乎是关于在同一个case表达式中以相同的排序顺序选择不同的列。实际上,您不需要第二个
case
<代码>最佳id.datum\u leveren asc就足够了。@GordonLinoff-True。让第二个表达式清楚地反映第一个表达式可能会更清楚一些。实际上,您不需要第二个
大小写<代码>最佳id.datum\u leveren asc
就足够了。@GordonLinoff-True。让第二个表达式清楚地反映第一个表达式可能会更清楚一些。实际上,您不需要第二个
大小写<代码>最佳id.datum\u leveren asc
就足够了。@GordonLinoff-True。让第二个表达式清楚地反映第一个表达式可能会更清楚一些。实际上,您不需要第二个
大小写<代码>最佳id.datum\u leveren asc
就足够了。@GordonLinoff-True。让第二个表达清楚地反映第一个表达虽然可能更清楚一些。