如何在mysql中编写动态添加where子句的过程

如何在mysql中编写动态添加where子句的过程,mysql,stored-procedures,Mysql,Stored Procedures,我想在mysql中编写存储过程,在其中添加“where子句” 动态地 我已经编写了Sp,但它给出了一个错误 请帮忙 CREATE PROCEDURE GetStudent( @Center varchar(20)=null, @Gender varchar(20) = null, @yrOf10 date= null, @Designation varchar(20)= null,) AS DECLARE @Query VARCHAR(100);DECLARE @ParamDefin

我想在mysql中编写存储过程,在其中添加“where子句” 动态地 我已经编写了Sp,但它给出了一个错误 请帮忙

CREATE PROCEDURE GetStudent(
  @Center varchar(20)=null,
  @Gender varchar(20) = null,
  @yrOf10 date= null,
@Designation varchar(20)= null,)
AS DECLARE @Query VARCHAR(100);DECLARE @ParamDefinition NVARCHAR(2000);

SET @Query = ' SELECT * FROM Student WHERE 1=1';IF @Center IS NOT NULL
     SET @Query = @Query + ' AND Center= @Center ';IF @Gender IS NOT NULL         SET @Query = @Query + ' AND Gender=@Gender  ';IF @yrOf10 IS NOT NULL   SET @Query = @Query + ' AND yrOfPassing10=@yrOf10   ';IF @Designation IS NOT NULL    SET @Query = @Query + ' AND Designation=@Designation';

不能在对象名称中使用@符号

我不知道你为什么在所有东西前面都加@。你是从MS SQL还是什么开始的


不管怎样,要删除本地变量,您使用DECLARE

什么错误?如果你需要帮助,那么就向人们提供他们需要的信息,我们不是通灵者。我得到了这个错误..1064-你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在'@Center varchar(20)=null附近使用的正确语法,