将SQL查询转换为MySQL

将SQL查询转换为MySQL,mysql,sql,sql-server,Mysql,Sql,Sql Server,我有一个SQL查询,从中可以得到列表形式的列的值 Select STUFF(( Select Distinct ',' + QUOTENAME(visit_count) From arms Where armId= '@armIdValue' FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)')

我有一个SQL查询,从中可以得到列表形式的列的值

Select STUFF((
              Select Distinct ',' + QUOTENAME(visit_count) 
              From arms 
              Where armId= '@armIdValue'
              FOR XML PATH(''), TYPE
             ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')
visit\u count
列的值是5,所以我得到如下结果:

[1],[2],[3],[4],[5]
我尝试在MySQL中运行此查询,但不接受XML。

有什么解决办法吗

您需要使用
group\u concat()


您可以尝试以下查询

MSSQL:

DECLARE @col nvarchar(MAX);
SELECT @col = COALESCE(@col,'') +'['+visit_count +']'+ ',' 
From arms Where armId= '@armIdValue'
SELECT @col
MYSQL:

SELECT armId,GROUP_CONCAT(visit_count)
 FROM arms Where armId= '@armIdValue'
 GROUP BY armId

它没有以列表的形式给出结果,它只是返回5您是否可以在您的问题中添加一些示例数据@MohammadShahbazI有一个表,其中1列为armId,另一列为visit_count,数据为armId=12,visit_count=5@MohammadShahbaz,我已经更新了答案-你可以检查,但样本数据更值得赞赏,结果是1,2,3,4,5。我唯一没有得到的是[]获取错误:DECLARE col nvarchar(MAX)错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以了解在第1行0.000 seccol is@col(在上面的语句中)附近使用“DECLARE col nvarchar(MAX)”的正确语法。如何在MySQL中同时运行这三个语句,这给了我errorFUNCTION QUOTENAME不存在0.000秒的时间
SELECT armId,GROUP_CONCAT(visit_count)
 FROM arms Where armId= '@armIdValue'
 GROUP BY armId