怎么查找一段文字中包含了mysql数据库中关键词的数据呢?

比如有一个问题,你多大了。数据库中有表存放多大等很多关键词,并有相应回答,怎么查找到多大这条数据呢?

按照你的描述,对方问的问题肯定是不固定的吧?
假设对方问的问题是一个String类型的数据,作为String1.
所以可以把所有的关键词放在一个map里面,key为关键词,value为答案,再遍历map的key,转换为String,作为String2.
如果String1包含String2,那么就可以取出String2键对应的值,返回给对方了。
这是我java的思维,你们php好像只有数组,不过应该有类似map的函数的,array_map() 函数好像可以用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-04
问题写的不太懂。只能说:找出数据存放的规则和格式,然后用程序分析,拆解。追问

就是一个答案表两个字段,一个keyword一个anwser。根据问题查找答案,问题是你多大了,在keyword中找到' 多大',‘15岁了’这条数据

追答

还是不理解,难道

select * from table1 where keyword = ‘多大’

追问

这么着肯定不行吧,问题是'多大'可以返回正确数据,是‘你多大了’用keyword=就不行了

追答

select * from table1 where keyword like ‘%多大%’

追问

汗,我是要找到‘多大’这条数据,我现在有’你多大了‘这个问题还有一个表
==keyword=====anwser===
===多大========15岁====
===你好======嗯,你也好=
=男的女的====我是男的===

这样能明白了吧。。。

追答

完全不明白,你让其他人来看你写的问题好了,能明白的我只能服了。
以下不知道我理解的对不对,数据是这样存放的:
==keyword=====anwser===
===多大========15岁====
===你好======嗯,你也好=
=男的女的====我是男的===
//一个人的回答

===多大========14岁====
===你好======嗯,你也好=
=男的女的====我是男的===
//另一个人的回答
.
.
.
我想说的是,如果数据就这样的存放着,只能说你连一个和另一个人的数据都区分不出来,还找什么数据呢。自己搞去吧。

第2个回答  2013-01-04
这个还是得你自己根据程序来进行判断吧 数据库只是存储数据的一种软件 并没有这么智能追问

能说一下思路吗,我是用php

追答

==keyword=====anwser===
===多大========15岁====
===你好======嗯,你也好=
=男的女的====我是男的===
//一个人的回答

===多大========14岁====
===你好======嗯,你也好=
=男的女的====我是男的===
//另一个人的回答

你这表里总还有个一个人的id吧 用id匹配出来吧

第3个回答  2013-01-06
你是说 多大了 15岁 男的女的 这些汉字都在一个字段里么??

然后从这个字段里 取出 多大了 15岁 这个数据?追问

是根据问题中出现的关键词匹配答案,就像聊天机器人