--获取当前时间 前一天的时间 interaval 后面参数是几 代表前几天 date(DATE_SUB(NOW(),INTERVAL 1 DAY); -- 转码 CAST(countreg as char) CAST(CONCAT('"+download+"',adid) as char) as apk -- 不改变现有数组的情况下 连接两个或多个数组 返回 组成之后新的数组 CONCAT() CONCAT(CONVERT(a.adid,char)) -- mysql case 语句 case when then when then else end -- 查询为数字的列 select * from visitlog where LENGTH(0+adid)=LENGTH(adid) -- 查询前一天的数据 select * from visitorlogs where date(firsttime)=date(DATE_ADD(now(),INTERVAL -1 day)); -- 查询重复数据 select user_name,count(*) as count from user_table group by user_name having count>1; -- dos环境下中文乱码 set character_set_results=gb2312; --如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2。 IFNULL(expr1,expr2) -- 截取字符串 1. 要截取的字符串 2. 截取条件 3. 出现的位置 正数 从左往右截 负数 从右往左截 substring_index ('要截取的字符串','.',2); --当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。 --所以使用ignore请确保语句本身没有问题,否则也会被忽略掉 insert ignore into -- 导出数据库 mysqldump -u(username) -p(password) (dbname) > (路径加文件名).sql -- 将表一数据导入到表二中 两张表的字段要一致 insert into table2 ('字段1','字段2') select 字段1 , 字段2 from table1 ; -- 如果数据存在 执行更新操作 如果不存在执行插入 REPLACE INTO ext (extid,noid,key1,value1) VALUES +values+ ; insert into visitlog (imei ,imsi, plat, version,visitdate ,jspname,adid,count) values " + " (?,?,?,?,?,?,?,1) on " + " duplicate key update count=count+1 -- 设置权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ' pwd' WITH GRANT OPTION; flush privileges; -- 分组后显示每组的几条数据 select a.fdid , a.adid , a.apk , a.pkgName , a.name from (select t1.*,(select count(*)+1 from recommend where fdid=t1.fdid and rid<t1.rid) as group_id from recommend t1) a where a.group_id<=5
select * from (
select localdate , userid , sum(amount) as amount from tab_pay_order where localdate between '20180320' and '20180325' group by
userid , localdate order by localdate , amount desc
) as a left join
(
select localdate , userid , sum(amount) as amount from tab_pay_order where localdate between '20180320' and '20180325' group by
userid , localdate order by localdate , amount desc
) as b on a.localdate=b.localdate and a.amount<=b.amount group by a.localdate , a.userid , a.amount
having count(1)<=3 order by a.localdate , a.amount desc;
-- 分组查询 显示日期最小的数据 select idfa,devicetoken,idfv,dcode , min(regdate) as date from romuse GROUP BY idfa,devicetoken,idfv,dcode order by date(regdate) delete from iappleapp where type=2 and id not in ( select id from ( select max(id) as id , count(1) as count from iappleapp where type=2 group by appname ORDER BY count desc) as b ); -- 将本地txt文件 以命令的形式 保存到数据库中 mysql -uroot -p20110725 lock[数据库名称] -e "load data local infile 'd:/zfy4.txt' into table pm_clientlog_w6(表明) fields terminated by '|' (imei,imsi,regdate,jspfile,packageid,plat,version)" -- 删除重复数据 delete from game where id in (select id from (select max(id) as id,count(title) as count from game group by title having count >1 order by count desc) as tab ) alter table [biaoming] add [ziduanming] [leixing](length) alter table isapp modify column appname varchar(50) ; -- 获取当前日期 select curdate(); -- 获取当月最后一天。 select last_day(curdate()); -- 获取本月第一天 select DATE_ADD(curdate(),interval -day(curdate())+1 day); -- 获取下个月的第一天 select date_add(curdate()-day(curdate())+1,interval 1 month); -- 获取当前月的天数 select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual; -- 将查询结果保存到本地txt文件 /usr/local/mysql/bin/mysql -h romherom3.mysql.rds.aliyuncs.com -uuser_romhe -ppasswd_20110725 rom3 -e "select concat(imei,','),null,concat(',',imsi,','),null,concat(',',plat,','),null,concat(',',regdate) from rom_user where date(regdate)>=date('2014-10-01') and soid >='200188003000868' and soid<='200188003001087' ">/home/webs/meng.txt mysql -h rdsk5j61yfna0312q977.mysql.rds.aliyuncs.com -uappstoreljd -pljd20151123 appstore -e "select idfa from iosrecimeisad where adid='876336838'">/alidata1/linshi/zfy/ximalaya.txt /usr/local/mysql/bin/mysql -hrds32m2q332m2q3.mysql.rds.aliyuncs.com -uappstore -pdelong20110725 appstore -e "select * from iosuser_old">/home/webs/zfy/iosold.txt -- 查询指定数据库有多少张表 appstore 为要查询的数据库 SELECT count(*) TABLES, table_schema FROM information_schema.TABLES where table_schema = 'appstore' GROUP BY table_schema; ALTER TABLE `iosappcheck` ADD COLUMN `registerdate` varchar(255) NULL COMMENT '苹果账号注册时间'; --删除计划任务 DROP EVENT e_test_insert (计划任务名称) --当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS --DROP EVENT IF EXISTS e_test; --停止计划任务 ALTER EVENT e_test_insert (计划任务名称) DISABLE; --开始事件 ALTER EVENT e_test ENABLE(计划任务名称); 1. hash索引查找数据基本上能一次定位数据,当然有大量碰撞的话性能也会下降。而btree索引就得在节点上挨着查找了,很明显在数据精确查找方面hash索引的效率是要高于btree的; 2. 那么不精确查找呢,也很明显,因为hash算法是基于等值计算的,所以对于“like”等范围查找hash索引无效,不支持; 3. 对于btree支持的联合索引的最优前缀,hash也是无法支持的,联合索引中的字段要么全用要么全不用; 4. hash不支持索引排序,索引值和计算出来的hash值大小并不一定一致。 -- MySQL 添加列,修改列,删除列 ALTER TABLE:添加,修改,删除表的列,约束等表的定义。 查看列: desc [表名]; 修改表名: alter table [t_book] rename to [bbb]; 添加列: alter table 表名 add column 列名 varchar(30); 删除列:alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer:exec sp_rename't_student.name','nn','column'; 修改列名Oracle:lter table bbb rename column nnnnn to hh int; 修改列属性:alter table t_book modify name varchar(22); sp_rename:SQLServer 内置的存储过程,用与修改表的定义。 --MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列 查看表的字段信息:desc 表名; 查看表的所有信息:show create table 表名; 添加主键约束: alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段); 添加外键约束: alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段); 删除主键约束: alter table 表名 drop primary key; 删除外键约束: alter table 表名 drop foreign key 外键(区分大小写); 修改表名: alter table t_book rename to bbb; 添加列: alter table 表名 add column 列名 varchar(30); 删除列: alter table 表名 drop column 列名; 修改列名MySQL: alter table bbb change nnnnn hh int; 修改列名SQLServer: exec sp_rename't_student.name','nn','column'; 修改列名Oracle: alter table bbb rename column nnnnn to hh int; 修改列属性: alter table t_book modify name varchar(22); sp_rename:SQLServer 内置的存储过程,用与修改表的定义。