求助这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;





...全文
174 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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都满足你的查询.所以可能会出现多行数据.

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧