zoukankan      html  css  js  c++  java
  • 基于Mysql 根据输入值 为基础的 环形排序

    前提

    有表Table,有数据如下,其中 字段index 的长度未知:

    index data
    1 bulabula
    5 bulabula
    11 bulabula
    35 bulabula
    71 bulabula
    95 bulabula
    96 bulabula

    需求

    随机生成一个数,然后以这个数【不含这个数】开始,进行正序逆序排序 并分页
    例如:

     // 当: 现在命中了 生成数为 100,每页取 3条
     正序:第一页: 1->5->11 第二页: 35->71->95 第三页 96
     逆序:第一页: 96->95->71 第二页: 35->11->5 第三页 1
    

    正序全列:

    1 5 11 35 71 95 96

    逆序全列:

    96 95 71 35 11 5 1
     // 当: 现在命中了 生成数为 50,每页取 3条
     正序:第一页: 71->95->96 第二页: 1->5->11 第三页 35
     逆序:第一页: 35->11->5 第二页: 1->96->95 第三页 71
    

    正序全列:

    71 95 96 1 5 11 35

    逆序全列:

    35 11 5 1 96 95 71
     // 当: 现在命中了 生成数为 35,每页取 3条
     正序:第一页: 71->95->96 第二页: 1->5->11 第三页 35
     逆序:第一页: 11->5->1 第二页: 96->95->71 第三页  35
    

    正序全列:

    71 95 96 1 5 11 35

    逆序全列:

    11 5 1 96 95 71 35

    答案

    # 正序
    SELECT `index` FROM `Table`  order by FIELD( SIGN(`index`-要命中的数),1,-1,0),  `index`;
    # 逆序
    SELECT `index` FROM `Table`  order by FIELD( SIGN(`index`-要命中的数),-1,1,0),  `index` desc ;
    

    思路

    基于mysql 百度一下 这俩函数 啥概念 就解决了。

  • 相关阅读:
    jQuery 选择器
    http statusCode(状态码)含义
    JS实现拖拽效果
    Sql Service中的分页
    SQL Server中一些不常见的查询
    游标的基本写法
    doT.js
    关于GridView中控件的问题
    Sql Server创建函数
    ASP.NET中Ajax的用法
  • 原文地址:https://www.cnblogs.com/akashicbrother/p/14991012.html
Copyright © 2011-2022 走看看