求助这sql是什么问题

小土豆炒马铃薯丶 2017-11-02 10:33:20
源数据:
结果:
希望的结果: 类似于结果的样子,但如果没有爹就在他爹这行显示自己的名字
但有id=2的时候的数据的时候就出现subquery returns more than 1 row
执行的sql是
select f.id,(select fa.title from familly fa where locate(f.id,fa.childStories)>0 ) '他爹',f.title as '名字',f.childStories from familly f;





...全文
142 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qisg931 2017-11-02
select f.id,(select group_concat(fa.title) from familly fa where locate(f.id,fa.childStories)>0 ) '他爹',f.title as '名字',f.childStories from familly f; 这样可以把所有的他爹写在一起,也不会报错了
  • 打赏
  • 举报
回复
引用 1 楼 jutuo2009cs 的回复:
locate(f.id,fa.childStories)>0 当存在 fa.childStories中包含2都满足你的查询.所以可能会出现多行数据.
那需要怎么修改?现在是包含2的都满足查询条件,我需要的是查询2就只找到2而已,20,21这些不要!求解答
  • 打赏
  • 举报
回复
Harrison_2009 2017-11-02
locate(f.id,fa.childStories)>0 当存在 fa.childStories中包含2都满足你的查询.所以可能会出现多行数据.
  • 打赏
  • 举报
回复
相关推荐
发帖
MySQL
加入

5.5w+

社区成员

MySQL相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2017-11-02 10:33
社区公告
暂无公告