工作中对mysql的感悟

1 对select 语句的一点感悟

2020/04/24 时遇到一个查询需要用另一个查询的结果 当时自己想到的是利用存储结果 经人指点可以运用 表连接 把每个查询(select)当成表在连接 成功解决问题现在附上代码:
select id ,concat(name1,name) from

(select concat(name,’-’) as name1 from f_organization where code = ‘001014-002006-002014’) a join

(select id , name from f_organization across where code like ‘001014-002006-002014-00____’) b

学习存储过程中的感悟

定义的变量名不能是表的字段名 ,而且变量的类型一定要加上大小 如varchar(255) in 定义的变量好像不能赋给其他的变量

mysql存储过程语法

成员变量

变量定义:declare/in/out/inout 变量名 变量类型 (可为所有mysql数据库拥有的类型)[ default];
游标定义:declare 游标名 cursor for 查询语句;
变量前面加@的是会话变量或者叫用户变量(全局)
in 变量名 变量类型 这是输入
out 变量名 变量类型 这是输入在外面可以用@变量名获取到
赋值:set 变量名=表达式值
select 字段 into 变量 form … where
输出变量 select 变量名;

用户变量

工作中对mysql的感悟

控制语句

逻辑判断

逻辑符号 等于为=
if then else end if;
工作中对mysql的感悟
case end case
工作中对mysql的感悟### 循环
while ···· do … end while
工作中对mysql的感悟

repeat···· end repea(类似do while)
工作中对mysql的感悟
labels名: loop

条件 then leave labels名
end loop

游标的循环

1.定义游标 declare 游标名 for 查询语句
2. 定义游标结束变量 declare 变量名 类型 default 值
3. 绑定 游标结束变量到游标 declare continue handler not found set 游标结束变量=值
4. open 游标名;
5. lables名 :loop
if 游标结束变量条件 then leave lables名
fetch 游标名 into 变量1,变量2;
end loop;
6. close 游标名;