SELECT *
FROM run_mal_record,run_mal_cause WHERE run_mal_cause.malacc_cause like '%' || run_mal_record.mal_cause || '%' ......
FROM run_mal_record,run_mal_cause WHERE run_mal_cause.malacc_cause like '%' || run_mal_record.mal_cause || '%' ......
FROM run_mal_record,run_mal_cause
WHERE run_mal_cause.malacc_cause like '%' and run_mal_record.mal_cause like '%' and ......
‘||’或许又要变成别的符号了
您说的方法我以前用了,但是只能是在oracle中
SELECT *
FROM run_mal_record,run_mal_cause WHERE CHARINDEX(run_mal_record.mal_cause ,run_mal_cause.malacc_cause)>0但不知道oracle中是否有CHARINDEX函数?
改为:
select *
FROM run_mal_record,run_mal_cause WHERE run_mal_record.mal_cause like '%' + run_mal_cause.malacc_cause + '%' 我想知道一点,你为什么要这样设计数据库呢?
既然run_mal_record.mal_cause是用run_mal_cause.malacc_cause表中字段组合出来的,你不如加一个表专门指定这两个表的一对多的对应关系。这样就好做查询了。而且用文字来组合,又不好维护,可能还会有长度限制,没什么好处。比如run_mal_cause中
使用不合理,超负荷,违章操作,保养维护不善,操作不良,安装问题,原制造问题,原设计问题
分别对应代码1,2,3,4,5,6,7,8run_mal_record记录有:
1001 使用不合理/超负荷/违章操作/保养维护不善/操作不良/安装问题
1002 原制造问题/原设计问题 新加的表中记录就是这样的:
frecordid fcauseid
1001 1
1001 2
1001 3
1001 4
1001 5
1001 6
1002 7
1002 8查询就好写了。