1、将字符转换为数字 cast()函数 cast(colum as unsigned)

select (1+1),('1'+'2'),(cast('1' as unsigned)+3);

MySQL使用技巧_关联查询

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使用,返回分组后指定列的集合