mysql - mysql 语句中的 ORDER BY CASE

标签 mysql

我经常在论坛上查看这个问题,但由于我只是一个初学者,我无法找到可以用我的一点知识用于我的代码工作的答案。这就是我想要解决的问题:

我的商店里有很多产品。有 4 种不同类型。

  1. 产品名称以“AA-”开头
  2. 产品名称以“BB-”开头
  3. 产品名称以“CC-”开头
  4. 产品名称以“DF-”开头

不,当我向查看者展示产品时,我想使用 ORDER BY ASC。

但是对于产品“CC-”和“DF-”,我希望将其订购为 DESC。

如果我的产品名称以“BB-”开头,则应按价格排序(也在 select 语句中调用)

我了解到我应该为此使用 CASE。但我不知 Prop 体是怎样的。

最佳答案

我认为在这种情况下你也可以轻松地使用UNION,如下所示:

select t1.product_name Name, t1.product_price Price from

 (select product_name, product_price from shop 
  where product_name like 'cc%' or product_name like 'de%'
  order by product_name desc) t1

 union 

 select t2.* from
 ( select  product_name, product_price from shop 
   where product_name like 'bb%'
   order by product_price ) t2

 union 

 select t3.* from
 ( select product_name, product_price from shop 
   where ( product_name not like 'cc%') and ( product_name not like 'de%')
   and (product_name not like 'bb%') 
   order by  product_name, product_price) t3 ;

关于mysql - mysql 语句中的 ORDER BY CASE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143577/

相关文章:

c# - mysql 查询上的 saveFileDialog 文件夹路径

php - 如何从一个表中获取 2 列和 2 行作为一行中其他表的列,在 MySQL 中?

mysql - 为每天有 20,000 名访问者的多站点 Drupal 安装扩展 MYSQL 数据库

php - 很难从两个表中获取数据

android - 我正在使用 Realm 数据库并且它没有外键..有没有其他解决方案?

mysql - 表中有实际但重复的数据或引用其 id 并运行两个查询或更复杂的查询?

MySQL 更改汇总的最后一行

mysql - 在插入语法问题或什么中选择子查询中的变量?

PHP 应用程序无法连接到 127.0.0.1 处的 docker mysql 容器

java - 无法从 base64 字符串中获取完整的图像质量