HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。
HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。
某条数据追加某个字段的内容
UPDATE person SET `Name`=CONCAT(`Name`,'22') WHERE id =1;
删除索引biz_credit表格中的索引"unq_ProductId_CoreCompanyId"
DROP INDEX unq_ProductId_CoreCompanyId ON biz_credit;
追加字段 biz_credit表格中追加InterestRate,格式为decimal(7,4),字段描述为“利率”
ALTER TABLE biz_credit ADD COLUMN InterestRate DECIMAL(7,4) COMMENT '利率';
删除表格中的某个字段
ALTER TABLE uc_ygb_pubinfo DROP COLUMN DomainId
拼接字符串并更新某个表的某个字段
拼接效果为table_content中OffSiteDate字段的结果为:
{"offSiteValueDate":"2018-11-01","offSiteExpireDate":"2019-02-05","offSiteRepayPeriodDay":"早于兑付日2个工作日 ","offSiteSettleInvestDaySpan":"产品到期日所属的第0工作日"}
sql为
UPDATE table_content
LEFT JOIN table_base ON table_base.Id = table_content.ProjectId
LEFT JOIN table_clearing ON table_base.Id = table_clearing.ProjectId
SET table_content.OffSiteDate = CONCAT('{"offSiteValueDate":"',DATE_FORMAT(table_base.ValueDate,'%Y-%m-%d'),
'","offSiteExpireDate":"',DATE_FORMAT(table_base.ExpireDate,'%Y-%m-%d'),
'","offSiteRepayPeriodDay":"',"早于兑付日",table_clearing.RepayPeriodDay,"个工作日 ",
'","offSiteSettleInvestDaySpan":"',"产品到期日所属的第",table_clearing.SettleInvestDay,'工作日"}')
WHERE table_clearing.SettleTypeId = 2 AND table_clearing.RepayTypeId =1 AND table_clearing.SettleInvestDay IS NOT NULL;
sql中日期转换成某个日期格式的字符串
其实接上个例子。用于拼接字符串过程中使用
效果为:aaa---2018-11-14
select 'aaa---'+DATE_FORMAT(table_base.ExpireDate,'%Y-%m-%d') from table_person
修改某个表的某一列的列名。
ALTER TABLE 表名 CHANGE 列名 新列名 列类型
ALTER TABLE member_info_change CHANGE UpateOperatorId UpdateOperatorId INT(11) DEFAULT NULL COMMENT '更新人,member_operator.id';
批量插入
<insert id="insertList">
INSERT INTO uc_user_biztype (
Id ,
UserId ,
CreateTime ,
UpdateTime
) VALUES
<foreach collection="list" item="item" separator="," >
(
#{item.id},
#{item.userId} ,
now() ,
now()
)
</foreach>
</insert>
添加联合索引
ALTER TABLE bizimport_transfer_detail ADD INDEX `idx_partnertransferseq_applymemberid` (`PartnerTransferSeq`,`ApplyMemberId`)
mybatis中sql的用法
<foreach collection="recordStatusList" item="item" separator="or" >
<if test="item == -7">
(project_recordinfo.RecordStatus = #{item})
</if>
</foreach>
INSERT INTO investor_table SELECT NULL,gf.MemberId,pub.CreateTime FROM gf_member gf JOIN uc_pubinfo pub ON gf.CompanyInfoId = pub.Id ;
将查询出来的结果用逗号分隔的方式显示,结果如下,“1,2,3”
select group_concat (id) from user
@Ognl@isNotEmpty(needQueryRepayList) and @Ognl@isNotEmpty(overdueRepay) and overdueRepay == 1
//if(a,b,c)如果a成立,执行b,不成立执行C
if(a=4,1,2)
如果a = 4,则为1,否则为2
SUBSTRING_INDEX(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)
GROUP_CONCAT (字段A)分组中,某个字段以逗号分割,A1,A2,A3
group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )
group_concat(id order by id desc separator '’) 以‘’分割 A1_A2_A3
SELECT SUBSTRING_INDEX(GROUP_CONCAT(ApplyStatus ORDER BY Id DESC),',',1) FROM table01
substring_index(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)
1.mysql字段默认的含义:在插入时不指定该字段的值;
2.以mybatis举例,如果是插入实体,那么为空的字段就会插入空;
3.如果不想mybatis等持久化工具插入空,可以尝试insertSelective方式进行,这样为空字段会被剔除