0

我正在迈出开发动态 sql 查询的第一步,我有一个问题要问论坛。可以在连接的 select 语句中附加额外的连接语句(见下面的代码)吗?

use test;
drop procedure if exists test.spds;
delimiter $$
create procedure test.spds (
xage varchar(75),
xgender varchar(2),
xquery varchar(254))
begin
set @xan:= REPLACE(xage,'''','');
set @xgn:= REPLACE(xgender,'''','');

set xquery:=concat('select count(*) from test.ratings where quota=1')

if @xan is not null then
xquery:=xquery concat(' and age in (',@xan,')')

if @xgn is not null then
 xquery:=xquery concat(' and gender = ',@xgn,')

end if;

xquery=xquery concat(';');

prepare x1 from xquery;
execute x1;
deallocate prepare x1;

end if;
end $$

同样,这是我的第一次尝试,所以也许我过于简单地处理这个问题,任何指导/建议都将不胜感激。谢谢!

4

1 回答 1

0

是的,你可以,试试这个

if @xan is not null then
   set xquery:=CONCAT(xquery, ' and age in (',@xan,')');
end if
于 2013-05-21T02:55:10.430 回答