当前位置: 首页 > 知识库问答 >
问题:

MySQL自定义订单通过混合数据类型

翟善
2023-03-14

在下面的mysql查询中,我使用了一个自定义的语句顺序,这样我就可以以特定的顺序而不是字母顺序显示各种大小:

select distinct size 
from product p left join productsizes ps 
             on p.productcode = ps.size_prodcode 
order by field(size, 'XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL')

如果某些产品也有数字大小,我如何编写订单,以便将数字大小与自定义订单一起按升序排列?

所需输出的示例:

30,32,34,S,M,L

S、 M,L,30,32,34

共有3个答案

扶绍辉
2023-03-14

您应该尝试使用一个包含所有大小的枚举字段。它将维持其排序顺序。

CREATE TABLE ... (
  ...
  size ENUM ('30', '32', '34', 'S', 'M', 'L')
  ...
);

或者

CREATE TABLE ... (
  ...
  size ENUM ('S', 'M', 'L', '30', '32', '34')
  ...
);
范云
2023-03-14

试试吧

ORDER BY (CASE WHEN sizes REGEXP '(\d)+' THEN 0 ELSE 1 END) ASC,
         field(sizes, 'XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL')
支洋
2023-03-14

FIELD()在找不到搜索字符串时返回0。因此:

ORDER BY FIELD(size, 'XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL'), size
 类似资料:
  • 见 使用mixin组合映射层次 对于这个部分。

  • 我有一个MySQL表,下面有几个表 所以我想一次获取3个结果,就像这样 但是我想要第三列的混合结果。因此,在可能的情况下,所有3条记录都应该包含2个type=1的结果和1个type=2的结果 这将是动态的,这意味着可以添加更多类型,并且可能会限制10个可以有(2,3,2,1,2)数据。

  • 我有一个自定义插件,允许客户向订单中添加自定义信息。 项目被添加到购物车,自定义数据显示在购物车页面上。但是,自定义信息不会转移到后端的订单页面。理想情况下,我也希望将自定义数据添加到客户的订单电子邮件中。 目前的代码如下: 我试图修改我在网上找到的一段代码片段,并将其添加到上述代码中。但是,当我实现此功能时,购物车完全崩溃: 任何帮助都将不胜感激。我没有太多的编码经验,我正在努力找到一种方法来实

  • 问题内容: 假设我以ng-repeat以表格格式显示以下数据。 以上代码取自http://code.ciphertrick.com/2015/06/01/search-sort-and-pagination- ngrepeat-angularjs/ 这样我们就可以搜索。无论用户在搜索文本框中输入哪种内容,都将基于该过滤器生成数据,但是我的要求有些不同。 我将有一个下拉列表,其中将填充所有字段名称,

  • WooCommerce默认使用post ID作为订单号,post可以是订单,也可以是产品、页面、文章或其它的custom post type,所以这个ID是不连续的,人们并不能简单的通过订单号去猜测你网站的销量。但这也给商店管理者带来一定困扰,拿到一个订单号,却无法知道是什么时候的订单,是哪个商店的订单。所以要给订单号加前缀,前缀里带上具体时间和一个序号,就能解决这个问题。 用代码自定义订单号的显

  • 我已经创建了一个WordPress自定义帖子类型,然后我创建了REST API自定义endpoint来让所有帖子正常工作。然后,我创建了另一个自定义endpoint,通过ID获取单个帖子。例如http://localhost:8888/WordPress/WP-JSON/LC/v1/cars/120 我已经创建了一些帖子,每次我将路线末端的ID更改为118或116时,它都会显示最新的post-ID