1、将字符转换为数字 cast()函数 cast(colum as unsigned)
select (1+1),('1'+'2'),(cast('1' as unsigned)+3);
2、MySQL实现行转列
(1)group by和group_concat()函数组合使用,substring_index(group_concat(),',',N)取前N个数据
(2)as取列名为别名,再使用union all将多个查询结果拼接,最后用order by对整体结果排序(列字段少时使用)
3、使用join更新表
update tab1 join tab2 on xx set xx where ....
4、子查询批量插入数据
insert into tab(col1,col2...) select ...
5、活用正则表达式 regexp ^ $ . * + |
6、关联查询比子查询效率快,优先使用join关联查询
7、if(exp,v1,v2) if()函数的使用 exp:表达式 v1:exp为真时返回的值 v2:exp为假时返回的值
8、case when... then... else... end case when函数可以镶嵌使用,相对if函数灵活
9、group by比distinct性能快,考虑性能优先使用group by去重
10、coalesce()函数处理空值
(1)coalesce(col,xxx) 将空值null替换成xxx
(2)coalesce(subselect) 只取非空的记录
11、rollback; 事务回滚
12、使用触发器 trigger
create trigger trigname [before | after] (insert | update | delete) on for each row ......
13、对经常 group by、order by、select、distinct 的字段添加索引 index
14、使用视图view create view viewname as select.....
15、last_insert_id()函数:查询最后一个插入主键id的值
16、求集合的最大最小值:greatest()和least()函数实现
select greatest(1,2,3),least(1,2,3) greatest()返回最大值和least()返回最小值
17、group_concat()函数:和group by使用,返回分组后指定列的集合