转换SQL查询到MySQL

问题描述 投票:2回答:2

我有我在哪里以列表的形式获取列的值的SQL查询。

Select STUFF((
              Select Distinct ',' + QUOTENAME(visit_count) 
              From arms 
              Where armId= '@armIdValue'
              FOR XML PATH(''), TYPE
             ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

visit_count列的值是5,所以我得到结果是这样的:

[1],[2],[3],[4],[5]

我试图把这个查询在MySQL中运行,但它不接受XML。 是否有任何解决方案?

mysql sql sql-server
2个回答
1
投票

您需要使用group_concat()

select group_concat(concat('[',visit_count,']')
from arms WHERE armId= 12 group by armid

1
投票

你可以试试下面的查询。

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
© www.soinside.com 2019 - 2024. All rights reserved.