当其中一个字段包含逗号分隔的数字时,如何在 mySQL 中使用 GROUP_CONCAT?

How to use GROUP_CONCAT in mySQL when one of the fields contain comma seperated numbers?

我有两个 table 如下。 (Table A 和 Table B)。 Table B 有一个字段包含来自 table A 的多个 ID,但以逗号分隔。它们保证存在于 Table A.

Table A
FIELD1  FIELD2
1        CAR
2        BUS
3        TRUCK
.
.

Table B FIELD2 : "1,3".

我要的是B中的每条记录(来自过滤条件)

FIELD1   FIELD2      FIELD3 
B.ID     CAR,TRUCK   something....

我想从 table A 中提取 FIELD2,其中 每个字段的 ID 与 Table B (FIELD2) 中的每个字段匹配。实现此目标的最佳方法是什么?

这是我尝试过的,但它没有给我想要的。

SELECT 
GROUP_CONCAT(A.FIELD2) AS VEHICALS
FROM B 
LEFT JOIN A ON A.FIELD1 IN (B.FIELD2)
WHERE B.FIELD_X > 20; 

感谢任何帮助。

使用FIND_IN_SET()GROUP BY B.ID, B.FIELD2

SELECT B.ID, GROUP_CONCAT(A.FIELD2 ORDER BY A.FIELD1) AS VEHICALS
FROM B INNER JOIN A 
ON FIND_IN_SET(A.FIELD1, B.FIELD2)
WHERE B.FIELD_X > 20
GROUP BY B.ID, B.FIELD2

由于 ids 保证存在于 Table A 中,因此不需要 LEFT 连接,使用 INNER 连接.
参见 demo.