Mysql - 按空格分隔

时间:2016-04-20 13:47:21

标签: mysql sql full-text-search

我有3张桌子(药物,通用,产品)。药物与药物通用是主表。
和产品属于药物和药物。通用的。

参考链接:http://sqlfiddle.com/#!9/b437e/1

现在我想在这3个表中搜索文本,如下所示。

示例:

产品表行:
 1 => Multum Abarelix
 2 =>嗜血
3 =>酣乐欣

药物表行:
1 =>羟基苯基

泛型表行:
1 =>对乙酰氨基酚

如果我搜索文本'Multum Halcion hydroxyphenyl Acetaminophen',那么我必须得到包含这些相关文本的行。

需要结果应该是:

产品表行:
 1 => Multum Abarelix
3 =>酣乐欣

药物表行:
1 =>羟基苯基

泛型表行:
1 =>对乙酰氨基酚

查询

select a.product_id, a.product_name, b.generic_name, c.drug_name 
from product a
join generic b
on b.generic_id = a.generic_id
join drug c
on c.drug_id = a.drug_id
where a.product_name like '%Multum Halcion hydroxyphenyl Acetaminophen%'
or b.generic_name like '%Multum Halcion hydroxyphenyl Acetaminophen%'
or c.drug_name like '%Multum Halcion hydroxyphenyl Acetaminophen%'

请给我一些疑问以获得此结果。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要更改表的create语句以及用于获取结果的查询。 您需要将相应列的名称列索引到FULLTEXT,然后才能应用全文搜索。

我在sqlfiddle中做了一些更改。请点击此链接。

http://sqlfiddle.com/#!9/b78faa/4/0