MySQL小知识

1、MySQl的特殊字符:%,_,\;如果想要在sql中使用字符本身,请使用字符“\”进行转义,如“%”应该“\%”

 

2、select into:

UPDATE `tbl_gp` INNER JOIN 
(SELECT gpdm,MAX(createTime) createTime FROM `tbl_gp_remark` GROUP BY gpdm ) b
 ON tbl_gp.`gpdm`=b.gpdm SET remarkTime=b.createTime

 

 

 

3、为mysql数据库中的时间列添加默认当前时间值:

timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

 

 

4、查看执行计划:

EXPLAIN
SELECT DISTINCT db FROM smi WHERE lb IN (3,5,18,44) AND rk BETWEEN '2014-08-14 06:00' AND '2014-08-14 07:59' 
AND DD=266089 AND XJ=570000 AND DB>0 LIMIT 0,20;

 

 

5、获得mysql优化器优化后的查询语句:

EXPLAIN EXTENDED
SELECT DISTINCT db FROM smi WHERE lb IN (3,5,18,44) AND rk BETWEEN '2014-08-14 06:00' AND '2014-08-14 07:59' 
AND DD=266089 AND XJ=570000 AND DB>0 LIMIT 0,20;
SHOW WARNINGS;

 

 

 

4、通过SELECT Sql生成批量update语句:

/*1、对应车线数据更新*/
SELECT CONCAT('UPDATE BD_CXXX SET CORR_CAR_LN=',t2.id,' WHERE ID=',t.id) FROM cxxx t
LEFT JOIN (SELECT id,cxmc FROM cxxx WHERE yxx !=0) t2 ON(t.dycx=t2.cxmc) WHERE t2.cxmc IS NOT NULL;

 

 

/*2、承担主体、承担费用和承担比率更新*/

SELECT CONCAT('UPDATE BD_TJD SET BEA_SUB=\'YD.',cdzt,'\',BEA_EXP=',cdfy,',BEA_RAT=',cdbl,' WHERE CXXX_ID=',id,' AND PATH_PLC=\'YD.',cdzt,'\'')
FROM cxxx WHERE yxx !=0

 

 

 5、按照表名模糊查找对于的字段名

SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME LIKE '%OfflineActivity%';

 

 

6、更改自增字段起始值

ALTER TABLE test AUTO_INCREMENT=30000;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值