当前位置: 首页 > news >正文

sql 按照前端传的数组里的值进行自定义排序

要实现的功能:客户有个需求 按照给定的sku顺序排序,不降序,不升序

先看客户给的sku值:

            "TU2501",  "TU2515", "TU2514","TU2516",

            "TU2503","TU2415", "TU2420","TU2416"

以上是客户给定的sku值,我需要的方式前端以数组传给我,因为还要根据sku进行 IN 查询

前端传的数组:

{

  "referenceArray": 

    [ "TU2501", "TU2515","TU2514","TU2516","TU2503","TU2415", "TU2420","TU2416"],

  "idGuest": "1725650",

  "sortType": 6

}

这里是我要的参数 其中referenceArray就是要排序的顺序值,也是查询的条件值

直接看代码:

    public PageBean<CategoryProductVo> getCategoryProductList(CategoryProduct categoryProduct) throws Exception {PageHelper.startPage(categoryProduct.getPageNumber(), categoryProduct.getPageSize());if(categoryProduct.getReferenceArray().length>0){categoryProduct.setSortSku(String.join(",", categoryProduct.getReferenceArray()));}List<CategoryProductVo> list=this.getCategoryProductListAll(categoryProduct);return PageUtil.getPageBean(list);}

要注意的是我使用String.join的方法进行 数组转字符串并以逗号分隔,使用String.join 可以把数组的中括号[ ] 前后都干掉

数组转字符串之后的格式:TU2501,TU2515,TU2514,TU2516,TU2503,TU2415,TU2420,TU2416

接下来看sql语句:

SELECTp.id_product  AS idProduct,p.reference  AS reference,p.id_shop_default  AS idShopDefault,
FROMproduct AS p
WHEREp.state = 1 AND p.active = 1 AND p.reference IN ( 'TP1804', 'TP1805', 'TU2213', 'TP1802', 'TU2308', 'TP1906', 'TP1902', 'TP1806' ) 
ORDER BY FIND_IN_SET  (p.reference ,"TP1804,TP1805,TU2213,TP1802,TU2308,TP1906,TP1902,TP1806")

这里尤其要注意的是:order by 的时候每个值之间一定不要留空格 否则排序不生效  desc 跟 asc也不要加 否则自定义排序就没意义了

FIND_IN_SET(str,strlist),该函数的作用是查询字段(strlist) 中是否包含(str)的结果,返回结果为 null或记录 官方说明

FIND_IN_SET 函数可以用于自定义排序顺序

http://www.dtcms.com/a/516929.html

相关文章:

  • 网站备案更换主体电子商务后悔死了
  • Python_封装案例
  • 查找5个搜索引擎作弊的网站普通网站建设的缺陷
  • 卫浴网站模板获取网站开发语言
  • 网站的盈利点企业建站的作用是什么
  • 哪里有网站建设培训班二级a做爰片免费网站
  • kmp需要技能
  • 大岭山网站仿做杭州家装口碑比较好的公司
  • 【Pycharm】Debug展示完整Tensor
  • [iOS] 计算器仿写
  • 北京专业网站制作公司家在深圳龙光城
  • Blender学习-基础移动
  • wordpress的文章采集湖北优化网站建设
  • 如何做防水网站电子商务电商网站设计
  • 宁波建网站哪家wordpress调用昵称
  • 深入理解 C++ 红黑树:平衡二叉搜索树的理论精髓​
  • 手机网站建设计中国建筑人才网官网登录
  • rust python 混合编程注意点
  • 做正品的网站申请个人网站有什么用
  • 潍坊网页网站制作怎么做的网站收录快
  • 江象网站建设成都网站建设优化推
  • Elasticsearch从入门到进阶——Elasticsearch部署与使用
  • 嵌入式软件架构--按键消息队列3(测试)
  • 淘宝导购网站模版上海城隍庙简介
  • 怎么建立企业网站免费的软件项目管理方案
  • 工作流activiti(1)
  • 合泰单片机之点亮开发板的所有LED灯
  • 找不到mfc140d.dll文件
  • Dexmal 原力灵机开源 Dexbotic:具身智能的“Transformers“库来了
  • 毕设做网站有什么题目网络规划设计师攻略