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 に答える