MySQL语法错误-单个查询运行成功,但它们一起失败



当尝试运行以下查询时,我得到一个"无效的语法";错误。

set @maxid = (select max(id) from Seat);
select case 
when id % 2 = 0 then id-1 
when id = @maxid then id
else id+1 end as id, student from Seat
group by id, student
order by id

完整的错误信息

你有一个错误的SQL语法;查看手册对应于MySQL服务器版本,以便使用正确的语法Near 'select case当id % 2 = 0时,则id % 1当id = @maxid时,id' at第7行

奇怪的是,如果我单独运行SET语句(不含SELECT语句)或SELECT语句(不含SET语句),它们都执行成功。

您可以通过与设置变量的子查询连接将这些查询合并为单个查询。

SELECT 
CASE
WHEN id % 2 == 0 THEN id - 1
WHEN id = @maxid THEN id
ELSE id + 1
END AS id,
student
FROM Seat
CROSS JOIN (SELECT @maxid := MAX(id) FROM Seat)
ORDER BY id

相关内容

最新更新