1、表关联更新:
1
2
3
|
select a.` user `,a.`host`,b.db from mysql.` user ` as a
left join mysql.db as b on (a.` user ` = b.` user ` and a.`host` = b.`host`)
where a.` user ` != 'root' ;
|
更新前的查询:
1
2
3
4
5
|
select * from user_bank where id = 1650;
select * from user_bank where bank_type is null ;
select count (*) from user_bank where bank_type is null ;
select * from bank;
select * from bank where bank_code = '03010000' ;
|
2、函数的使用
2.1、时间相关的函数
1
2
3
4
5
6
7
8
|
select UNIX_TIMESTAMP( '2015-12-11 11:24:00' );
select FROM_UNIXTIME( "1449804240" );
select FROM_UNIXTIME( "1449804240" , '%Y-%m-%d %H:%i:%S' )
select NOW();
select DATE_ADD(NOW(),INTERVAL 1 YEAR )
select DATE_ADD(NOW(),INTERVAL -1 YEAR )
select DATE_ADD(NOW(),INTERVAL 1 MONTH );
|
2.2、if函数的使用
1
|
select if(host= '127.0.0.1' , '本机' , '非本机' ) from mysql. user ;
|
2.3、case的使用
1
2
3
4
5
6
7
8
9
|
select db,
(
case
when host = "localhost" then '本机'
when host = "127.0.0.1" then '本机'
else '其他'
end
) as host,user
from mysql.db;
|
2.4、分组函数使用
1
|
select user , count ( user ) from mysql. user group by user ;
|
2.5、产生唯一值
1
2
|
select uuid();
select UUID_SHORT();
|
2.6、存储过程
2.6.1、游标的使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
BEGIN
DECLARE v_user varchar(50);
-- 遍历数据结束标志
DECLARE done INT DEFAULT FALSE;
-- 游标
DECLARE cur CURSOR FOR select `user` from mysql.`user`;
-- 将结束标记绑定到游标
DECLARE CONTINUE HANDLER FOR NOT found set done = TRUE;
-- 打开游标
OPEN cur;
-- 开始循环
read_loop:LOOP
-- 变量初始化
SET v_user= '' ;
-- 提取游标数据
FETCH cur INTO v_user;
-- 声明游标结束条件
IF done THEN
LEAVE read_loop;
END IF;
-- 这里写想做的循环
SELECT v_user;
END LOOP;
-- 关闭游标
CLOSE cur;
END
|
本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1721059,如需转载请自行联系原作者