一、需求
父表能根据子表相关key值进行检索
父表:parent
id | key | cids |
---|---|---|
1 | 每一个没有 | 3,4,5 |
2 | 奋斗的日子 | 1,3 |
3 | 都是对生命的辜负 | 3,5 |
… | … | … |
子表:child | ||
id | c_key | c_key1 |
---------------- | ------------------------------- | ----------------------------- |
1 | 别说没有 | 执行能力 |
2 | 分明就是 | 没有 穷够 |
3 | 彼时, | 知我意 |
4 | 无为 | 是一种境界 |
5 | 岁月的灯 | 红尘的人 |
… | … | … |
二、效果
父表检索关键字
没有
父表:parent
id | key | cids |
---|---|---|
1 | 每一个没有 | 3,4,5 |
2 | 奋斗的日子 | 1,3 |
三、实现SQL
SELECT * FROM parent WHERE
id IN(
SELECT parent.id FROM
(SELECT id FROM child WHERE CONCAT(c_key,c_key1) like '%没有%') c
INNER JOIN parent
ON FIND_IN_SET(c.id,parent.cids)
/**去重**/
//GROUP BY parent.id
)
OR key like '%没有%'
/**
*sql语句纯手写重在参考实现逻辑
**/
◆ ◆ ◆ 结语 ◆ ◆◆
算是工作遇到的一个小问题,先在网上检索了下没有找到解决方案或者是打开方式不对,终自己弄出一种解决方法,特此记录。希望对遇到同类问题的友友具有一定的参考意义。
这是我的第一次写这么高端大气上…的文章,有不足之处,或表述不清楚的地方,请多多包含,共勉~~