【问题标题】:Mysql - Search a text in different columns by whitespace separatedMysql - 通过空格分隔搜索不同列中的文本
【发布时间】:2016-04-20 13:47:20
【问题描述】:

我有 3 个表格(药物、仿制药、产品)。药物和仿制药是主表。
产品属于药物和仿制药。

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

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

示例:

产品表行:
1 => Multum Abarelix
2 => 嗜血杆菌
3 => Halcion

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

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

如果我搜索文本 'Multum Halcion hydroxyphenyl Acetaminophen',那么我必须获取具有这些相关文本的行。

需要结果应该是这样的:

产品表行:
1 => Multum Abarelix
3 => Halcion

药物表行:
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%'

请给我一些查询以获得此结果。

谢谢。

【问题讨论】:

    标签: mysql sql full-text-search


    【解决方案1】:

    您需要更改表的创建语句和获取结果的查询。 您需要将相应列的名称列索引到 FULLTEXT,然后您可以应用全文搜索。

    我对 sqlfiddle 做了一些改动。请点击此链接。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 2022-01-17
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      相关资源
      最近更新 更多