美文网首页我爱编程
关于mybatis的动态查询

关于mybatis的动态查询

作者: 菊地尤里 | 来源:发表于2018-05-28 20:24 被阅读0次

边学边记,每天到底学了什么新东西,巩固了哪些老知识。

mybatis的动态查询(where,trim,set)sql标签

Mybatis最入门---动态查询(where,trim,set) - CSDN博客

一.<where>标签

     a. 按照标准写法,第一个标签内的AND应该不写,但是,就算开发中书写也不会报错。这就是where标签帮助我们自动的移除了第一个AND链接。但是,第二个之后的标签内,必须有AND链接。

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

二.<trim>标签

该标签的功能与<where>类似,并且额外的提供了前缀后缀功能。

a.我们使用<trim>替代<where>标签。

b.属性“prefix”表示:加入前缀where

c.属性“prefixOverrides”表示:自动覆盖第一个“and”或者“or”

d.后缀的用法类似;

三.<set>标签用于update语句

a.SQL语句的set被<set>标签替代。

b.每个<if>语句中最后都带有逗号,写过SQL语句就一定知道,最后的逗号是不能有的,因此,这里的标签能够帮助我们自动的移除最后一个中的逗号。

c.<trim>是一个非常强大的标签,因此,我们也可以通过来实现的功能

concat拼接字符串

username LIKE CONCAT ('%',#{user.username},'%');

多表更新 UPDATE SET like concat('%',abc,'%');

SQL语句为:select * from table1 where  `text` like CONCAT('%',(select name from table2 where id =3),'%');

UPDATE ecs_region a,nation b SET a.code = b.code where b.province like concat('%',a.region_name,'%');

UPDATE ecs_region a,nation b SET a.code = b.code where b.city like concat('%',a.region_name,'%');

UPDATE ecs_region a,nation b SET a.code = b.code where b.district like concat('%',a.region_name,'%');

复习一下mysql的索引MySQL索引类型 - 成九 - 博客园

MySQL目前主要有以下几种索引类型:

1.普通索引

2.唯一索引

3.主键索引

4.组合索引

5.全文索引

CREATETABLEtable_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]

1.unique|fulltext为可选参数,分别表示唯一索引、全文索引

2.index和key为同义词,两者作用相同,用来指定创建索引

3.col_name为需要创建索引的字段列,该列必须从数据表中该定义的多个列中选择

4.index_name指定索引的名称,为可选参数,如果不指定,默认col_name为索引值

5.length为可选参数,表示索引的长度,只有字符串类型的字段才能指定索引长度

6.asc或desc指定升序或降序的索引值存储

很全的mysql自动增长id博客mysql 数据库自增id 的总结 - CSDN博客就是太长了

相关文章

网友评论

    本文标题:关于mybatis的动态查询

    本文链接:https://www.haomeiwen.com/subject/lrqnjftx.html