首页 > 解决方案 > 案例模式下如何获取订单数量

问题描述

我有一个查询:

SELECT REPLACE(column1,'a','b') AS col ORDER BY CASE 
WHEN col like '%door%' THEN 1
WHEN col like '%window%' THEN 2
WHEN col like '%book%' THEN 3
ELSE 4
END

我想知道哪一行在订单号 1 中,哪一行在订单号 2 中,以及......如何找到它?

标签: mysqlsql-order-by

解决方案


对于上面的评论,您可以CASE在 select 子句中添加第二个表达式:

SELECT
    REPLACE(column1,'a','b') AS col,
    CASE WHEN REPLACE(column1,'a','b') NOT LIKE '%door%' AND
              REPLACE(column1,'a','b') NOT LIKE '%window%'
         THEN 'special message' END AS msg
FROM yourTable
ORDER BY
    CASE WHEN col like '%door%'   THEN 1
         WHEN col like '%window%' THEN 2
         WHEN col like '%book%'   THEN 3
         ELSE 4 END;

推荐阅读