【发布时间】:2013-03-31 16:55:30
【问题描述】:
我有以下 MySQL 命令,用于填充足球队最近 6 场比赛的表格:
insert into lastxgames
select team, matchdate, hometeam, awayteam, fthg, ftag
from (
select
team, soccerdata.matchdate, hometeam, awayteam, fthg, ftag,
@teamCounter:=IF(@prevHome=team,@teamCounter+1,1) teamCounter,
@prevHome:=team
from soccerdata
join (
select distinct matchdate, hometeam team
from soccerdata
union
select distinct matchdate, awayteam
from soccerdata
) allgames on soccerdata.matchdate = allgames.matchdate
and (soccerdata.hometeam = allgames.team or soccerdata.awayteam = allgames.team)
join (select @teamCounter:=0) t
order by team, soccerdata.matchdate desc
) t
where teamCounter <= 6
order by team, matchdate desc;
我想在 C# 程序中运行它,但是当我这样做时,查询失败,因为 @ 符号被用作查询参数,而不是按照 MySQL 预期的方式处理(MySQL 变量?)。
在我的 C# 程序中,我只是声明一个字符串来保存查询并将其添加到 MySqlCommand:
string insertCommand = @"insert into lastxgames...";
using (MySqlCommand cmdInsert = new MySqlCommand(insertCommand, dcConnection))
{
cmdInsert.ExecuteNonQuery();
}
有没有办法让 C# 忽略 @ 符号,从而不将 @teamCounter 和 @prevHome 视为查询参数?
【问题讨论】:
-
你能说明你如何使用示例文本吗?
-
已编辑以包含一些 c# 使用信息
-
收到的错误信息是什么?