mysql数据库查询 查询一张表某列中是都包含另一张表某列的数据

微博信息表的 数据结构,

负面词汇表的表结构 。
要求是 查询出 微博信息表中 content列中包含 负面词汇表中 sentence 负面词汇列的所有数据
也就是说在页面的下拉框 选择 对应的信息 或者是显示负面信息或者是 全部信息 如果sql 无法实现 有没有别的思路可以实现 ,我试过用程序来做比较 速度有点慢

这个操作SQL实现不了,因为其中涉及了全文检索的功能。
要实现此类功能,建议从业务 逻辑入手,就是在content存入数据库时,检查气宗是否包含负面词,并进行标记,之后存入另外一张表中记录这些包含负面词的记录

所以,建议你在保存微博数据的内容时进行检查,然后在微博信息表中增加一个字段,标识是否包含负面信息,这样你在查询的时候就是对标记位的判断了。
相当与把你处理的时间分散到保存记录中,然后通过标记位做索引。追问

哎木有办法啊 不能实现也得想办法啊 ,功能就这样的

追答

所以,建议你在保存微博数据的内容时进行检查,然后在微博信息表中增加一个字段,标识是否包含负面信息,这样你在查询的时候就是对标记位的判断了。
相当与把你处理的时间分散到保存记录中,然后通过标记位做索引。

就是扩展一个字段,加个业务逻辑处理应该没有问题吧,负面词可以考虑缓存在服务器的内存中,用个高效的内存检索结构。

追问

及时是这样也需要对现在库中的信息 进行查询做标识 不能叫我 挨个信息 和词汇表中的所有负面词汇进行比较吧 这个有点费劲了所有还的找个能查询的方法出来的

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-28
select t1.id,t1.content,t2.sentence
from 微博信息表 t1 join 负面词汇表 on instr(t1.content,t2.sentence)>0

不知道这2个表的具体关系,如微博信息表中的id与负面词汇表中的id是都是微博信息的id?

追问

没有关联关系~~ 这是最大的问题 id是用 uuid做的标识 这让人蛋疼的数据

追答

那上面的sql应该能用,只不过效率可能比较差,如果微博数据量比较大的话,可能比较难以忍受,建议建1个微博与负面词汇关系表,实时更新这个表,化整为0,这样可能取得更新时间与查询时间的平衡

本回答被提问者采纳
第2个回答  2013-10-10
select * from A , B where A.id = B.id and B.sentence = A.content(+)
哦...不知道是不是这意思
第3个回答  2013-10-10
试试locate函数