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 ) -- 时间加1个年 select DATE_ADD(NOW(),INTERVAL -1 YEAR ) -- 时间减1个年 select DATE_ADD(NOW(),INTERVAL 1 MONTH ); -- 时间加1个月 -- 常用日期单位:MICROSECOND,SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,YEAR,SECOND_MICROSECOND,MINUTE_MICROSECOND,MINUTE_SECOND,HOUR_MICROSEC,ND,HOUR_SECOND,HOUR_MINUTE,DAY_MICROSECOND,DAY_SECOND,DAY_MINUTE,DAY_HOUR,YEAR_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(); -- 长uuid select UUID_SHORT(); -- 短uuid |
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
|
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态