mysql数据库sql语句集锦

1、mysql查询某个值出现次数超过一定频率的sql语句,很明显,看到这样的字眼,马上想起关键字"having",用于数据筛选:

SELECT * from tb_ecg WHERE usr_id in( SELECT `usr_id` FROM tb_ecg group by usr_id HAVING COUNT(`usr_id`)>10);

以上sql语句用于查询 tb_ecg表中,哪些用户的数据超过10次。

2、提高数据库性能的配置,启用懒加载:

  <!--lazyLoadingEnabled:设置懒加载,默认为false。如果为false:则所有相关联的都会被初始化加载。
     aggressiveLazyLoading:默认为true。当设置为true时,懒加载的对象可能被任何懒属性全部加载;否则,每个属性按需加载。 -->

在mybatis-config.xml中配置

<settings>
    <!-- 打开延迟加载的开关 -->
    <setting name="lazyLoadingEnabled" value="true" />
    <!-- 将积极加载改为消息加载即按需加载 -->
    <setting name="aggressiveLazyLoading" value="false" />
</settings>
详见https://www.cnblogs.com/zhangzongle/p/6210407.html

mysql给已存在的表添加多个字段:

<span style="color:#4f4f4f">ALTER TABLE ytj1012 ADD duns varchar(36) not null, ADD created_By varchar(64) not null, ADD created_Date datetime not null,ADD updated_By varchar(64),ADD updated_Date datetime,</span>

ADD dataResType varchar(100)not null,ADD sSupplierCode varchar(10)not null,ADD sMachineCode varchar(100)not null,ADD IsSuccess varchar(36),ADD uploadTime datetime,ADD errReason text;

将某列的值赋给同一表的另一列

update table tb1 set tb1.ddsl = (select tb2.sl from table tb2 where tb2.id = tb1.id);

mysql除法运算,四舍五入后保留2位小数:

UPDATE report set ua=ROUND(ua/16.81,2) WHERE ua is not null and ua>1;

分组查询并统计每组的数量:

SELECT idcard_no,count(*) AS counts from tb_ecg WHERE idcard_no like 'VM%' GROUP BY idcard_no ORDER BY counts DESC;

嵌套查询、子查询

select jg,b.`NAME`,b.ADDRESS,b.CREATED_BY,cou from (select count(*) AS cou,duns AS jg from `tb_nibp` group by duns ORDER BY cou DESC LIMIT 11) as a LEFT JOIN tb_jigou b on a.jg=b.DUNS;

将查询结果更新到指定字段:

update tb_ecg ecg left join test_replace rep on ecg.idcard_no=rep.patient_id set ecg.idcard_no = rep.id_card WHERE ecg.idcard_no like 'VM%' AND rep.id_card is not NULL;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值