DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: monica9612
今日帖子: 2
在线用户: 17
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 iapeng (iapeng) ▲▲▲▲△ -
普通会员
2018/12/22 18:57:25
标题:
求:查询本部门人员参与的所有项目,sql语句思路? 浏览:1437
加入我的收藏
楼主: 数据库:MySQL5.0
如有一项目表

id    项目    参与人员
1     x1        a1,a4
2     x2        a2,a3,a7
3     x3        a5,a6

如本部门人员 a1,a2,a3  查询本部门人员参与的所有项目?

显示

1     x1        a1,a4
2     x2        a2,a3,a7


---------
用FIND_IN_SET(str,strlist),只能查询一个用户,
FIND_IN_SET("a1,a2,a3",strlist)这种写法不行

该如何写查询,请教其方法或思路?
----------------------------------------------
-
作者:
男 iapeng (iapeng) ▲▲▲▲△ -
普通会员
2018/12/22 21:06:15
1楼: 难道查询不了
请大家提供一个查询思路!
----------------------------------------------
-
作者:
男 ghs_79 (ghs) ★☆☆☆☆ -
盒子活跃会员
2018/12/22 21:10:45
1楼: 试试 instr(str,strlist)这种写法
----------------------------------------------
Delphi爱好者。
作者:
男 iapeng (iapeng) ▲▲▲▲△ -
普通会员
2018/12/22 22:32:26
2楼: instr不行
若是mysql5.7.8,类似这个可能行
http://www.cnblogs.com/fengff/p/9293758.html

但我的是mysql5.0
----------------------------------------------
-
作者:
男 xu_wayne (wayne不念韦尼) ▲▲▲▲△ -
普通会员
2018/12/22 22:38:44
3楼: 写一个函数, 解析参与人员字段,返回结果集,然后,就简单了
----------------------------------------------
-
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2018/12/23 10:27:31
4楼: select + like ?
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
男 kenliaoliao (ben) ★☆☆☆☆ -
普通会员
2018/12/24 7:52:53
5楼: 再建一个表A
数据如下
参与人员    id   
a1          1     
a4          1
a2          2
a2          2
a7          2
a5          3
a6          3

Select id,项目,参与人员 from 项目表 Where ID in(Select ID From A
Where  参与人员 in(’a1‘,’a2‘,’a3’)
----------------------------------------------
-
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2018/12/24 8:30:03
6楼: 这个表就设计的不好,实际上应该参与人员里就一个人就好办了。当初偷懒放一起了,现在就要多花点时间了。
https://blog.csdn.net/u012009613/article/details/52770567
----------------------------------------------
-
作者:
男 iapeng (iapeng) ▲▲▲▲△ -
普通会员
2018/12/25 8:35:35
7楼: 谢谢大家的热心回复。
做的执法文书处理,执法办案必须两人及以上,有时也会多部门联合办案
解决办法如下

1、用substring_index将一行变多行

2、SELECT distinct * from WHERE FIND_IN_SET查询
----------------------------------------------
-
作者:
男 chonghai (DBlue) ★☆☆☆☆ -
盒子活跃会员
2018/12/27 13:41:30
8楼: 一个思路,提供参考:
分别查找部门单一人员所参与的项目,然后union合起来。
----------------------------------------------
喜欢Delphi,关注Delphi,愿和广大爱好者交朋友。
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2018/12/27 16:46:42
9楼: 给一个MSSQL2008可用的方法给你参考
此帖子包含附件:
PNG 图像
大小:30.4K
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行99.60938毫秒 RSS