簡體   English   中英

在JOIN查詢中使用Mysql GROUP_CONCAT

[英]Using Mysql GROUP_CONCAT in JOIN Query

我有一個這樣的字符串:

'41,42,43,44,45,46,'

從此查詢:

SELECT 
    GROUP_CONCAT(lv
        SEPARATOR ',') as Id
FROM
    (SELECT 
        @pv:=(SELECT 
                    GROUP_CONCAT(Id
                            SEPARATOR ',')
                FROM
                    iot_zone
                WHERE
                    FIND_IN_SET(id_zone, @pv)) AS lv
    FROM
        iot_zone
    JOIN (SELECT @pv:=40) tmp) a;

我需要將此結果加入一個查詢,如:

SELECT T.* FROM T, T2
WHERE T.Id = T2.Id

其中T2是具有GROUP_CONCAT結果的表

41
42
43
44
45
46

你能幫助我嗎 ?

非常感謝

嘗試以下

CREATE TABLE T2(Id int);
INSERT T2(Id)VALUES(41),(42),(43);

SELECT *
FROM
  (
    SELECT '41,42,43,44,45,46,' Id
  ) T
JOIN T2 on CONCAT(',',T.Id) LIKE CONCAT('%,',T2.Id,',%')

希望我能正確理解您的問題。

我發現了另一個帶有FIND_IN_SET變體- 使用GROUP_CONCAT作為輸入的SELECT WHERE IN

我認為這會更有用

SELECT *
FROM
  (
    SELECT '41,42,43,44,45,46,' IdList
  ) T
JOIN T2 ON FIND_IN_SET(T2.Id,T.IdList)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM