我的功能代码如下。
DECLARE ids VARCHAR(55);
SELECT GROUP_CONCAT(id) INTO ids
FROM tableName WHERE ...;
SELECT CONCAT(GROUP_CONCAT(id), ids ) INTO ids FROM tableName .....;
SELECT column_name FROM tableName WHERE id IN (**ids**);
在此,我使用两个 select 语句创建 id 列表并应用到 IN 列表中。它给了我空结果。如果我像 CONCAT(GROUP_CONCAT(id), CAST(ids as char) ) 一样 CAST id,那么它会给我第一行结果。
最佳答案
试试这个:
DECLARE ids VARCHAR(55);
SELECT GROUP_CONCAT(id) INTO ids
FROM (SELECT id
FROM tableName
WHERE...
UNION
SELECT id
FROM tableName
WHERE....
) AS A;
SELECT column_name FROM tableName WHERE FIND_IN_SET(id, ids);
关于MySQL:创建逗号分隔列表并在 IN 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27702021/