mysql-在where子句存储过程中使用变量

mysql-在where子句存储过程中使用变量,mysql,stored-procedures,Mysql,Stored Procedures,我是存储过程中的新手 我有一个简单的问题示例,在SP中,我写了这个 BEGIN DECLARE totalRows INT; START SELECT count(cont.contentCode) INTO totalRows FROM ms_content as cont WHERE entityCode = 'ACAW'; SELECT totalRows; COMMIT; END 我称之为成功。我想在变量中添加条件where子句。因此,我将代码更改为: BEGIN D

我是存储过程中的新手
我有一个简单的问题示例,在SP中,我写了这个

BEGIN
DECLARE totalRows INT;
START 
    SELECT count(cont.contentCode) INTO totalRows FROM ms_content as cont WHERE entityCode = 'ACAW';
    SELECT totalRows;
COMMIT;
END
我称之为成功。我想在变量中添加条件where子句。因此,我将代码更改为:

BEGIN
DECLARE totalRows INT;
START TRANSACTION;
    SET @aa = concat("entityCode = 'ACAW'");
    SELECT count(cont.contentCode) INTO totalRows FROM ms_content as cont WHERE @aa;
    SELECT totalRows;
COMMIT;
END
SP返回零行。是否可以将条件存储在变量中并将其放入选择代码中?
谢谢。

您不能参数化整个WHERE子句。要做到这一点,您可以使用
动态SQL
,但它将非常危险,并且容易受到SQL注入攻击。-SQL Server,但idea在这里同样适用于准备好的语句-