在MYSQL数据库中存储查询,在使用换行符/空格时出现错误
我有一些查询存储在MYSQL数据库中,然后从数据库中提取出来并在例程中运行。当我不使用换行符/制表符将查询插入数据库时,查询运行良好,但当我尝试运行格式良好的相同查询时(我想这样做,以防以后需要更新查询),我得到一个错误。下面是一个有效和无效的示例(就代码而言,它们是相同的)在MYSQL数据库中存储查询,在使用换行符/空格时出现错误,mysql,Mysql,我有一些查询存储在MYSQL数据库中,然后从数据库中提取出来并在例程中运行。当我不使用换行符/制表符将查询插入数据库时,查询运行良好,但当我尝试运行格式良好的相同查询时(我想这样做,以防以后需要更新查询),我得到一个错误。下面是一个有效和无效的示例(就代码而言,它们是相同的) 你能分享一下错误信息吗also@cjg我更新了问题,以反映我遇到的错误 IF(@last_ranking <> formula, @current_rankings := @current_rankings +
你能分享一下错误信息吗also@cjg我更新了问题,以反映我遇到的错误
IF(@last_ranking <> formula, @current_rankings := @current_rankings + 1, @current_rankings) AS rank, @last_ranking := formula, prequery.team, prequery.formula FROM (select @current_rankings := 0) sqlvars, (SELECT team, SUM(formula) AS formula FROM (SELECT g.home_team AS team, SUM(CASE WHEN t.team_id IS NULL THEN 0 ELSE g.home_wins END) AS formula FROM games g LEFT JOIN _top_10 AS t ON g.away_team = t.team_id WHERE g.season = ? AND g.completed = 1 GROUP BY team UNION ALL SELECT g.away_team AS team, SUM(CASE WHEN t2.team_id IS NULL THEN 0 ELSE g.away_wins END) AS formula FROM games g LEFT JOIN _top_10 AS t2 ON g.home_team = t2.team_id WHERE g.season = ? AND g.completed = 1 GROUP BY team) AS Alias,(SELECT @current_rankings := 0, @last_ranking := 0) r GROUP BY team ORDER BY formula DESC ) prequery;
IF(@last_ranking <> formula, @current_rankings := @current_rankings + 1, @current_rankings) AS rank,
@last_ranking := formula,
prequery.team,
prequery.formula
FROM (select @current_rankings := 0) sqlvars,
(SELECT team,
SUM(formula) AS formula
FROM (SELECT g.home_team AS team,
SUM(CASE WHEN t.team_id IS NULL THEN 0 ELSE g.home_wins END) AS formula
FROM games g
LEFT JOIN _top_10 AS t ON g.away_team = t.team_id
WHERE g.season = ? AND
g.completed = 1
GROUP BY team
UNION ALL SELECT g.away_team AS team,
SUM(CASE WHEN t2.team_id IS NULL THEN 0 ELSE g.away_wins END) AS formula
FROM games g
LEFT JOIN _top_10 AS t2 ON g.home_team = t2.team_id
WHERE g.season = ? AND
g.completed = 1
GROUP BY team) AS Alias,
(SELECT @current_rankings := 0, @last_ranking := 0) r
GROUP BY team
ORDER BY formula DESC ) prequery;
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 18