mysql一个表中的两列匹配_mysql从两个表中的两列进行完全搜索

在MySQL中,用户需要实现一个功能,即在问题表和答案表的文本列上同时搜索用户输入的短语或单词,返回最匹配的记录。已创建了两个表:`questions` 和 `answers`,并为每个表的`text`列添加了全文索引。问题是,如何在不合并表的情况下,执行跨表的全文搜索。
摘要由CSDN通过智能技术生成

我有两张桌子。一个是问题,另一个是以下格式的答案。

问题(ID、文本、用户)

答案(ID、文本、问题ID、用户)

两个表的行数明显相同。

当用户搜索短语或单词时,我希望它同时搜索该单词的问题文本和答案文本,并按最常见的方式返回匹配项。

我尝试使用mysql的完整搜索,但无法在两个不同的表和两个列上运行。

如果可能的话,我也不想将问题和答案合并到另一个表中。

问题表:

CREATE TABLE `questions` (

`id` int(11) NOT NULL,

`message_id` int(11) DEFAULT NULL,

`text` text NOT NULL,

`answer` int(11) DEFAULT NULL,

`status` varchar(255) NOT NULL,

`user` int(11) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `questions`

ADD PRIMARY KEY (`id`);

ALTER TABLE `questions` ADD FULLTEXT KEY `text` (`text`);

ALTER TABLE `questions`

MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

答案表:

CREATE TABLE `answers` (

`id` int(11) NOT NULL,

`message_id` int(11) DEFAULT NULL,

`text` text NOT NULL,

`question` int(11) NOT NULL,

`status` varchar(255) NOT NULL,

`user` int(11) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `answers`

ADD PRIMARY KEY (`id`);

ALTER TABLE `answers` ADD FULLTEXT KEY `text` (`text`);

ALTER TABLE `answers`

MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值