php - mysql查询逗号分隔
PHP中文网
PHP中文网 2017-04-11 09:12:49
[PHP讨论组]

seal表
seal_id name
1 合同章
2 财务章
3 法人章

data表
id seal_id
1 1,2
2 1,3
3 1,2,3

如何查询data表连seal表 得到
array(
[0]=>array('id'=1,'name'=合同章,财务章),
[1]=>array('id'=2,'name'=合同章,法人章 ),
[2]=>array('id'=3,'name'=合同章,财务章,法人章 ),

)

求大神们指导 感激不尽T.T

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
怪我咯
SELECT data.id,GROUP_CONCAT(seal.name) AS name 
FROM data 
left join seal on FIND_IN_SET(seal.id,data.seal_id) 
GROUP BY data.id;
迷茫
    这个好像不能直接关联表吧,设计表的时候应该拆分表
    data表
    id
    1 
    2 
    3 
    seal表
    seal_id name
    1 合同章
    2 财务章
    3 法人章 
    
    增加中间表
    data_seal表
    data_id seal_id
    1        1
    1        2
    2        1
    2        3
    
    
select d.id,s.name from data d left join seal s on s.seal_id=sd.seal_id left join  data_seal sd on sd.data_id=d.id and sd.seal_id=s.seal_id
黄舟

提供思路:

  1. 查data表得到1,2

  2. php explorer() 函数分割1,2成array(1,2);

  3. 查询

PHP explode()函数用法、切分字符串

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号