1.一张表只有一个字段,而且是自增主键id插入:
insert into 表名 (column1) values (null) //括号必须有
2.有时候删除了自增字段的一些数据,但序号还是会继续往下排,将自增字段重置为表里数据继续往下排的数据(意思就是没有按顺序接上的数据就要删掉,比如5,7,删掉了6,按照自增的规则接下来就是8,就变成了5,7,8,但要是把7和8删掉并写了该语句,就会从6开始,变成5,6,而不是按照自增的规则变成5,9)
alter table 表名 auto_increment=1
3.选取两张表中想要的字段(可以根据查询条件在结尾加上where条件语句)
select column1,column2 form table1 inner join table2 on table1.column1=table2.column1
4.一个实体类中嵌套了多个其他的实体类集合的sql语句
<select id="findUserByAccount" resultMap="UserRoleMap">
select * from zty_user u,zty_role r,zty_userrole ur,zty_permission p,zty_rolepermission rp
where u.account=#{account}
and u.user_id=ur.user_id and ur.role_id=r.role_id and r.role_id=rp.role_id and rp.permission_id=p.permission_id
</select>
<resultMap id="UserRoleMap" type="com.example.project02.entity.User">
<id column="user_id" property="user_id"/>
<result column="account" property="account"/>
<result column="password" property="password"/>
<result column="user_name" property="user_name"/>
<result column="timing" property="timing"/>
<result column="last_update" property="last_update"/>
<result column="is_online" property="is_online"/>
<collection property="roles" ofType="com.example.project02.entity.Role">
<id column="role_id" property="role_id"/>
<result column="role_name" property="role_name"/>
<result column="role_issys" property="role_issys"/>
<collection property="permissions" ofType="com.example.project02.entity.Permission">
<id column="permission_id" property="permission_id"/>
<result column="permission_name" property="permission_name"/>
<result column="permission_type" property="permission_type"/>
<result column="permission_url" property="permission_url"/>
</collection>
</collection>
5.有时候需要在一张表里递归嵌套查询,比如树状图需要查询单表中某条数据的子数据(父、子数据都在一个表里,根据某个字段关联起来)
DELIMITER //
CREATE FUNCTION `getChildLst`(rootId INT)
RETURNS varchar(1000) READS SQL DATA
BEGIN
DECLARE sTemp VARCHAR(1000);
DECLARE sTempChd VARCHAR(1000);
SET sTemp = '$';
SET sTempChd =cast(rootId as CHAR);
WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT group_concat(id) INTO sTempChd FROM t_files where FIND_IN_SET(parent_id,sTempChd)>0;
END WHILE;
RETURN sTemp;
END //
DELIMITER ;
然后在xml文件中写sql语句,返回类型resultmap必须是集合
select *from t_files where find_in_set(id, getChildLst(#{id));
6.多个条件任意一个满足就查询(比如根据姓名或者电话号码)
(1)在mapper层定义方法参数里写(Map param)
(2)xml文件sql语句写判断语句<if test="name!=null">
and name=#{name}
</if>
<if test="tel!=null">
and tel=#{tel}
</if>
(3)service层定义局部变量 Map param=new HashMap();
param.put("name",name);
param.put("tel",tel);
(4)其他的就一样了