创建数据库以进行查询

时间:2016-06-02 11:03:11

标签: mysql database

我正在创建一个查询数据库,这样我将把查询作为输入,输出将是一个适当的回复。您可以将其视为一个问题&答案数据库。

以下是与我的三张桌子相似的样本:

词组表

Phrase

id      phrase
-------------------
1       what
2       what is
3       what is the

查询表

Inquiry

id      inquiry
------------------------
1       highest mountain

回复表格

Reply

phrase_id   inquiry_id      reply
-----------------------------------------
3           1               mount everest

让输入为:“什么是最高的山?

我可以进行查询,以便知道“这是什么”是短语和“最高峰”是查询,并将回复显示为输出?

2 个答案:

答案 0 :(得分:2)

是的,你可以通过加入你的3个表来创建这样的查询,并在连接的短语+查询中搜索问题(虽然我怀疑这将是创建这样一个数据库的最有效方式,但这远远超出SO的范围和这个主题)。

select reply
from replies r
inner join phrases p on r.phrase_id=p.id
inner join inquiries i on r.inquiry_id=i.id
where concat(p.phrase, ' ', i.inquiry)=lower('searched expression')

'搜索表达式'是输入参数。

答案 1 :(得分:1)

这是我提出的工作版本:

SELECT r.reply FROM Reply r LEFT JOIN Phrase p ON r.phrase_id=p.id LEFT JOIN Inquiry i ON r.inquiry_id=i.id WHERE LOWER('What is the highest mountain ?') LIKE LOWER(CONCAT(p.phrase, ' ', i.inquiry, '%'))