指定顺序Order by
mysql 按照指定字段的指定值排序:
select * from t_user order by FIELD(id, 0, 2, 11, 1, 3, 4, 5, 6, 8, 9, 10) asc
逗号分隔查询 FIND_IN_SET
使用FIND_IN_SET(str,sbstr)函数查询 “,” 号(逗号)隔开的数据;
filed 字段存储形式为多个逗号隔开的值:1,2,3,5,6
SELECT * from t_user where FIND_IN_SET('1',filed)
日期处理 ADDTIME interval
修改时间的年月,其他保留不变
select t.created_at,ADDTIME (CONCAT("2014-02-",DAYOFMONTH(t.created_at))+interval 0 hour,time(t.created_at)) as newtime
from t_user t where t.id=1
检查、修复表 CHECK REPAIR
-- 检查表,获得不是OK就是有问题需要修复。
check table t_user;
-- 修复表
REPAIR TABLE `t_user`;
分区表维护 - 不建议使用分区表
互联网公司为啥不使用mysql分区表:http://www.zuimoban.com/jiaocheng/mysql/8216.html
alter table t_logs partition by RANGE(id)
(PARTITION p0 VALUES less than (3000000),
PARTITION p1 VALUES less than (6000000),
PARTITION p2 VALUES less than (9000000),
PARTITION p3 VALUES less than (12000000),
PARTITION p4 VALUES less than MAXVALUE);
计算指定日期为第几个星期 WEEKOFYEAR
通过日期 计算是第几个星期
select WEEKOFYEAR(ADDDATE('2012-01-29',1));-- 从星期天开始算第一天
select WEEKOFYEAR(NOW());-- 从星期一开始算第一天(其中:now() 为计算当前日期的函数)
A表查询结果,更新B表 update from
通过另外一个表查询结果来更新表 update from
update b_gem gem inner join b_productlist list set gem.status='NEW',gem.storeroomid=list.storeroom where list.type=1 and list.sid=2 and list.serid=gem.serId
两个字段合并成一个字段显示 concat
将查询结果中的2个字段放到合并到一个字段显示
select concat(first_name,' ',last_name) as customerName from t_agmt_customer
获取表结构信息 show full fields
show full fields from t_user;
查看表的索引大小 Total Index Size
-- 将选择 information_schema 数据库
SELECT CONCAT(ROUND(SUM(index_length)/(1024*1024), 2), ' MB') AS 'Total Index Size' FROM TABLES WHERE table_schema = 'mytable_test' and table_name='t_user';