zoukankan      html  css  js  c++  java
  • mysql 截取数据 组合排序

    1. mysql 按照某个字段是空 组合排序
      如下可实现:按照 AWARD_AMOUNT 先是空的, BET_AMOUNT 再倒序

       SELECT * FROM `single_bet` order by  AWARD_AMOUNT is null desc,BET_AMOUNT desc;
      
    2. mybatis传递数组循环构建in语句

       <foreach collection="stateTypeArr" index="index" item="item" open="b.STATE_TYPE IN(" separator="," close=")">
           #{item}
       </foreach>
      
    3. mybatis where标签 【原文链接

       <select id="findActiveBlogLike" resultType="Blog">
         SELECT * FROM BLOG 
         <where> 
           <if test="state != null">
                state = #{state}
           </if> 
           <if test="title != null">
               AND title like #{title}
           </if>
           <if test="author != null and author.name != null">
               AND author_name like #{author.name}
           </if>
         </where>
       </select>
      

      where 元素知道只有在一个以上的if条件有值的情况下才去插入“WHERE”子句。而且,若最后的内容是“AND”或“OR”开头的,where 元素也知道如何将他们去除。

      如果 where 元素没有按正常套路出牌,我们还是可以通过自定义 trim 元素来定制我们想要的功能。比如,和 where 元素等价的自定义 trim 元素为:

       <trim prefix="WHERE" prefixOverrides="AND |OR "> ... </trim>
      
    4. mysql截取字符串转成数字并比较排序 【原文链接

       SUBSTRING_INDEX([列名],[分割符],[段数])
       列名:要分割列里内容的列名
       分割符:用来切割的符号
       段数:切割后取的长度
        
       以下示例说明参数:
       表info
       列c_code
       值
       1-10-ache
       则
       select SUBSTRING_INDEX(c_code,'-',1) as c_code from info
       会输出
       c_code
       1
       而select SUBSTRING_INDEX(c_code,'-',2) as c_code from info
       会输出
       1-10
       select SUBSTRING_INDEX(c_code,'-',-1) as c_code from info
       会输出
       ache
       这里-1跟高级语言中字符串截取一样,同样负数表示从后面开始计算
        
       排序,则
       1-10-ache
       1-2-ache
       2-11-ache
       2-3-ache
       2-5-ache
        
       select * from info order by (SUBSTRING_INDEX(c_code,'-',1)+0),(SUBSTRING_INDEX(SUBSTRING_INDEX(c_code,'-',2),'-',-1)+0) asc
        
       输出
       1-2-ache
       1-10-ache
       2-3-ache
       2-5-ache
       2-11-ache
        
       利用双重截取,之后利用mysql特性(+0会自动转化也数字),作数值的大小比较
  • 相关阅读:
    [kuangbin带你飞]专题十二 基础DP1 E
    hdu 1203 I NEED A OFFER! (01背包)
    hdu 2602 Bone Collector (01背包)
    hdu 4513 吉哥系列故事——完美队形II (manacher)
    hdu 2203 亲和串 (KMP)
    hdu 1686 Oulipo (KMP)
    hdu 1251 统计难题 (字典树)
    hdu 2846 Repository (字典树)
    hdu 1711 Number Sequence (KMP)
    poj 3461 Oulipo(KMP)
  • 原文地址:https://www.cnblogs.com/cuiyf/p/10077707.html
Copyright © 2011-2022 走看看