处理逗号分隔的字符串转为列表的list(行转列)解决跨库无法使用问题

1.  这个方可以  但是会出现跨库无法使用问题

select DISTINCT (substring_index(substring_index(a.id,',',b.help_topic_id+1),',',-1)) id
        from
        (SELECT CONCAT_WS(',',fill_recheck_user_job_no,fill_check_user_job_no,fill_user_job_no) id
        FROM 表名
        WHERE id = #{id}) a
        join mysql.help_topic b
        <![CDATA[
        on b.help_topic_id < (length(a.id) - length(replace(a.id,',',''))+1)
        ]]>

  

2. 类似于   select * from tablename  where  id in (1,2,3)

SELECT CONCAT_WS(',',fill_recheck_user_job_no,fill_check_user_job_no,fill_user_job_no) id

FROM 表名
WHERE id = #{id}    这个查出的数据是一个字符串的 "1,2,3"
使用下面的写法可以转化
find_in_set(对比参数, (SELECT CONCAT_WS(',',fill_recheck_user_job_no,fill_check_user_job_no,fill_user_job_no) id

FROM 表名
WHERE id = #{id})

可以改为这个写法  

select * from tablename  where  

find_in_set(id , (SELECT CONCAT_WS(',',fill_recheck_user_job_no,fill_check_user_job_no,fill_user_job_no) id

FROM 表名
WHERE id = #{id})
原文地址:https://www.cnblogs.com/huanglp/p/14750448.html