BEGIN
declare des int;
select tempSort into des from gamelist where gamesort=vgamesort;
if(des =1) then
select p.id as id,p.goldNum,p.giveGold,p.goldPrice,d.numdisplay
from goldprice p
left join goldtemplate d
on p.gamesort=d.gamesort and p.goldnum = d.goldnum and p.goldtype = d.goldtype
where p.gamesort=vgamesort and p.servername=vgameserver and p.goldtype=vgoldtype
order by p.goldNum desc;
else
select p.id as id,p.goldNum,p.giveGold,p.goldPrice,d.numdisplay
from goldprice p
left join goldtemplate d
on p.gamesort=d.gamesort and p.goldnum = d.goldnum and p.goldtype = d.goldtype
where p.gamesort=vgamesort and p.servername=vgameserver and p.goldtype=vgoldtype
order by p.goldNum asc;
end if;
END
存储过程中 的sql语句 就只有降序跟升序的区别 能把这个写成一句sql语句吗?
参数 in vgamesort varchar(200),
in vgameserver varchar(200),
in vgoldtype varchar(50)
------解决思路----------------------
select p.id as id,p.goldNum,p.giveGold,p.goldPrice,d.numdisplay
from goldprice p
left join goldtemplate d
on p.gamesort=d.gamesort and p.goldnum = d.goldnum and p.goldtype = d.goldtype
where p.gamesort=vgamesort and p.servername=vgameserver and p.goldtype=vgoldtype
order by case when des =1 then p.goldNum desc else p.goldNum asc
------解决思路----------------------
--mysql 不熟,演示一下思路,你自己改成正确的语法。
declare des int;
DECLARE sortSign int;
select tempSort into des from gamelist where gamesort=vgamesort;
if(des =1) then
SET sortSign = -1;
else
SET sortSign = 1;
end if;
select p.id as id,p.goldNum,p.giveGold,p.goldPrice,d.numdisplay
from goldprice p
left join goldtemplate d
on p.gamesort=d.gamesort and p.goldnum = d.goldnum and p.goldtype = d.goldtype
where p.gamesort=vgamesort and p.servername=vgameserver and p.goldtype=vgoldtype
order by p.goldNum * sortSign asc;