日期:2014-05-17  浏览次数:21034 次

同志们帮我看看我的这条SQL错在哪里为什么不能得到我想要的答案
这是一张数据表
ID TITLE DEPTID
1 通知一 一大队
2 通知二 一大队,二大队
3 通知三 三大队
4 通知四 二大队
5 通知五 五大队

这是我的SQL
select * from epare_safe_callboard t where t.deptcid in (A) --A是一个传入的变量值,
这里赋值为('一大队'、'二大队')

我的目标是取出
ID TITLE DEPTID
1 通知一 一大队
2 通知二 一大队,二大队
4 通知四 二大队

但是获得结果却是
ID TITLE DEPTID
1 通知一 一大队
4 通知四 二大队

这个SQL是哪里出错了呀?


------解决方案--------------------
where t.deptcid in (A) 是完全匹配;
select * from epare_safe_callboard t where t.deptcid like '%一大队%' or t.deptcid like '%二大队%';
应该可以了!
------解决方案--------------------
select * from epare_safe_callboard t where regexp_like (t.deptcid,'一大队|二大队');