• Mysql中的小技巧


    1.where 字段名 regexp '正则表达式'

    正则符号: ^ $ . [ ] * |
      . 表示1个任意字符
      * 表示前面重复0次,或者任意次
      ^ 开始
      $ 结尾
      [] 范围
      | 或                         
    

    sql示例:

    #查询以【李】开头的
    select name from user where name regexp '^李';
    #查询以【小】结尾的
    select name from user where name regexp '小$';
    #查询以【李】开头,中间任意,结尾以【四】的
    select name from user where name regexp '^李.*四$';
    #查询名字以【李】开头,或者以【小】结尾的
    select name from user where name regexp '^李|小$';
    

    2. instr、concat搜索和连接字符串

    数据字段中存放的是id集,形如  1,2,15,35 也可类推json格式
    查询时不用拆分了, 用上 instr、concat搜索和连接字符串
    查询ids中包含15的
    

    sql示例:
    select * from [table-表名] where instr(concat(',', ids, ','), ',15,') > 0

    3.查询时,多个字段 like 同个值

    like多个值 and和的关系
    like多个值 or的关系  可用regexp
    

    sql示例:
    select * from user where name regexp '张三|李四'

    4.查询结果过滤

    having用法:
    SQL查询 having 条件表达式;就是在查询结果中再查询一次
    

    sql示例:
    select name from user where name !="李四" having name="李小小";

    5.mysql内置对数据进行统计的指令

    聚焦函数:
      avg(字段名)
      sum(字段名)
      min(字段名)
      max(字段名)
      count(字段名)
    

    sql示例:

    ##查询名字不等于李四的人员的平均分数
    select avg(score) from user where name != "李四";
    ##查询最高分数
    select max(score) from user;
    ##查询最低分数
    select min(score) from user;
    ##查询总分数
    select sum(score) from user;
    ##统计user表中的行数
    select count(*) from user;
    

    6.mybatis中mapper.xml where下foreach写法

    A写法:

    <where>
      ID in
       <foreach close=")" collection="array" item="ids" open="(" separator=",">
          '${ids}'
        </foreach>
    </where>
    

    B写法:

    <where>
      <if test="ids!= null and ids.size() > 0">
            and id in
            <foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
                #{item}
            </foreach>
      </if>​
    <where>
    

    6.批量删除的写法

    mybatis中mapper.xml

     <delete id="deleteByIds">
            delete from notice_announcement
            <where>
                ID in
                <foreach close=")" collection="array" item="ids" open="(" separator=",">
                    '${ids}'
                </foreach>
            </where>
        </delete>
    

    mapper接口

     int deleteByIds(String[] ids);
    
    古今成大事者,不唯有超世之才,必有坚韧不拔之志!
  • 相关阅读:
    Spring MVC源码——Root WebApplicationContext
    ThreadPoolExecutor 源码阅读
    Spark RDD
    HashMap 源码阅读
    不定期更新的IDEA功能整理
    Jvm内存区域和GC
    装饰模式和Java IO
    spring websocket集群问题的简单记录
    Kotlin in Action 笔记
    WebSphere部署Spring Boot
  • 原文地址:https://www.cnblogs.com/songwp/p/15707317.html
Copyright © 2020-2023  润新知