Mysql查询-in的妙用
in在关联查询中的使用
在一次业务场景中,需要进行一次关联查询,为了图省事,当然要使用in,但是恰恰就出现了一些问题,所以在这里把它记录下来。
业务场景
大概写下sql:
select A.name from A
left join B
on B.id in A.ids
那么这里A表中的ids应该是什么样的形式呢?
其中id是int型的主键
ids是字符串的类型
我在最初的时候
理所当然的将ids中内容设置为类似于(1001,1002)
emmm
然后报错是语法错误
解决方法
通过尝试ids中的内容应该是:1001,1002
查询语句为:
select A.name from A
left join B
on B.id in
(SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(A.ids,’,’,help_topic_id+1),’,’,-1) AS num
FROM
mysql.help_topic
WHERE
help_topic_id < LENGTH(A.ids)-LENGTH(REPLACE(A.ids,’,’,’’))+