mysql 查询某字段中以逗号分隔的字符串的包含查询和关联查询实现

61 篇文章 1 订阅

1、一个人员文件表结构和数据如下:

 

2、一个文件表,结构和数据如下:

需求一: 查询共同拥有file_id为3的用户

查询SQL:

select u.* from temp_user_file u  where FIND_IN_SET(3,u.file_id_str)

结果:

 需求二:关联查询用户所有file文件的名称和URL

查询sql:

SELECT t.user_id, f.id AS file_id, f.file_name, f.file_url FROM temp_user_file  t

LEFT JOIN temp_file f ON FIND_IN_SET(f.id,t.file_id_str)

结果:

       本人不建议在正式的大型项目中使用逗号分隔,存储数据,但往往有一些老项目或者遗留的表中存在类似的结构,如果实在不能新增表,只能扩展部分字段用以支持1对多关系,可参考。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值