处理逗号分隔的字符串转为列表的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})
标签:no,跨库,list,转列,job,WS,user,id,fill 来源: https://www.cnblogs.com/huanglp/p/14750448.html