最近有用到sql对某些信息进行分组(ps:其实一开始我是使用java代码先实现分组,然后再往表里插数据的,但老大不太认可,所以改用sql语句分组)
因为本身sql的功底比较差,所以写不出什么东西,于是老大亲自出马,写了一些sql语句给我,然后我对这些语句分析了一下,总结如下:
1. 使用的是存储过程,过程中使用到了游标,定义格式: DECLARE 游标名 COURSE FOR select_statem ,使用的话有打开游标,遍历游标
有一个不是太明白,DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s= 1; 百度后发现是处理没有数据后的处理,这里当没有数据后,设置变量s=1
2. 序列号的获取rownum:
SELECT @rownum:=@rownum+1 AS rownum
......
cross join (SELECT @rownum:=0) r,
这个在某些地方还是挺有用处的
3. 在存储过程中set 变量名=变量值 应该放在所有DECLARE语句后面,否则会报错
4.MySql存储过程的DECLARE声明变量必须放在最前面