我正在迈出开发动态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 $$
这是我的第一次尝试,所以也许我过于简单地接近这一点,任何指导/建议都会受到赞赏。谢谢!
答案 0 :(得分:0)
是的,你可以试试这个
if @xan is not null then
set xquery:=CONCAT(xquery, ' and age in (',@xan,')');
end if