Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中的游标错误_Mysql_Sql_Database - Fatal编程技术网

MySQL中的游标错误

MySQL中的游标错误,mysql,sql,database,Mysql,Sql,Database,我在MySQL中使用游标的下一个脚本中遇到了下一个错误。 “脚本行:4您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解在'declare c_salari cursor for select salario from empleados'附近使用的正确语法 开放式c_salari “在第10行 " 分隔符$$ 删除函数(如果存在)`empresa`.`EmpleatsRang`$$ 创建函数'empresa`.'EmpleatsRang`(valor_inical in

我在MySQL中使用游标的下一个脚本中遇到了下一个错误。 “脚本行:4您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以了解在'declare c_salari cursor for select salario from empleados'附近使用的正确语法

开放式c_salari

“在第10行 "

分隔符$$
删除函数(如果存在)`empresa`.`EmpleatsRang`$$
创建函数'empresa`.'EmpleatsRang`(valor_inical int,valor_final int)返回int
开始
声明i int默认值为0;
声明resultat int默认值为0;
声明totalemp int;
宣布v_salario int;
声明c_salari光标用于从Emplicatos中选择salario;
从empleados中选择count(*)进入totalemp;
开放式c_salari;

当i=valor___;inical和salari时,不要将光标用于这样简单的任务。改用SELECT

select count(salario)
from empleados
where salari >= valor_inicial and salari <= valor_final
选择计数(萨拉里奥)
来自Employados

其中salari>=valor_-inical和salari不使用光标执行此类简单任务。改用SELECT

select count(salario)
from empleados
where salari >= valor_inicial and salari <= valor_final
选择计数(萨拉里奥)
来自Employados

其中salari>=valor_-inical和salari所有declare语句都应该位于begin本身之后和任何select之前。 所以写

Declare c_salari cursor for select salario from empleados; 
以前

select count(*) into totalemp from empleados;

所有declare语句都应该位于begin本身之后,任何select语句之前。 所以写

Declare c_salari cursor for select salario from empleados; 
以前

select count(*) into totalemp from empleados;

这是因为我没有将set放入变量“i”和变量“resultat”中


当i=valor\u inical和salari时,这是因为我没有将set放入变量“i”和变量“resultat”


while i=valor\u inical and salari请在结束后使用分号,而

请在结束后使用分号,而

我需要使用光标,因为它是为了一个练习我需要使用光标,因为它是为了一个练习当你只对一个范围感兴趣时为什么选择所有salarios到光标中(这反过来意味着你的循环做的比它需要的要多),检查valor_inical、valor_final以验证你可以做任何合理的事情,而使用计数器退出循环处理程序是更常见的方法。当你只对某个范围感兴趣时,为什么选择所有salarios到游标中呢(这反过来意味着你的循环做的比它需要做的要多),检查valor_inical、valor_final以验证你可以做任何合理的事情,而你可以使用计数器退出循环处理程序是更常见的方法。