我有一个小问题,我尝试创建一些会响应输入文本的AI,但问题是
说我们有一个名为“AI”的数据库,其中包含“回答”和“问题”栏目
如果我尝试使用查询
询问“嘿,为什么我的手机会爆炸”SELECT * FROM AI where question LIKE "%Hey why are my mobile explode%" LIMIT 1
我有这样的数据库记录......
Question | Answer
================================
Explode | because you got suck
我的查询没有得到任何结果,但如果我更改记录并将查询更改为这样......
查询
SELECT * FROM AI where question LIKE "%explode%" LIMIT 1
数据库
Question | Answer
=======================================================
Hey why are my mobile Explode | because you got suck
我得到了回报..
所以结论是,“LIKE”操作数被读取包含条件文本的值...
VALUE是问题列的值 条件是LIKE条件OPERAND的条件
Value = ... are my mobile **explode**
Condition = **explode**
所以上面的情况是MATCH
但是,我们可能会反转函数吗?我的意思是,如何读取条件文本中包含的值......
Value = ... **explode**
Condition = "....are my mobile **explode**
先前感谢,希望有人可以帮助我..
答案 0 :(得分:2)
这种简单的查询永远不会奏效。使用FULLTEXT index可以更好地使用{{3}},这样就可以使用这种自然语言'查询。如果由于某种原因无法使用全文,那么您将不得不进行大量的预处理来构建查询。对于您的第一个样本,它必须是:
SELECT ... WHERE (question LIKE '%hey%') OR (question like '%why%') OR (quetsion LIKE '%...%')
并且性能将是绝对糟糕的,因为完全狂野的条款就像不能使用索引一样。问题越多,MySQL必须进行的全表扫描越多,所需的时间就越长。
相比之下,查询的全文版本将是
SELECT ... WHERE MATCH question AGAINST ('Hey why are my mobile explode');
和...在元级别上,我希望这个问题的答案是&#34;你为什么要寻找这个而不是去医院治疗你的烧伤/弹片伤口?&#34; < / p>