sql语句小记

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方式进行,这样为空字段会被剔除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值