【发布时间】:2019-02-10 03:24:21
【问题描述】:
我在 MySql DB 中有两个表,分别命名为“Patients”和“Country”。 患者表包含
'name','dob',postcode','address', 'country_id' 等
Country 表有'id' and 'country_name' 列。
现在,我希望用户输入患者姓名、邮政编码或国家/地区中的任何内容,并获取所需患者的结果/数据。
要实现这一点,我能想到的一种方法是使用联接执行查询。 另一种方式,我想问的是,当用户输入搜索变量时,将搜索变量(即姓名、邮政编码和国家/地区)存储在具有全文类型的列中是否是一种好方法,例如“name_postcode_country”我对新创建的列执行全文搜索。
或者我应该考虑其他更好的方法。
【问题讨论】:
-
只需加入 country_id 上的两个表,并在 where 子句中对每个可搜索列使用 OR。
-
将数据保存在单独的列中比在合并的列中要好得多。搜索更容易、更高效。
-
使用连接和点赞比使用“全文搜索”更好?
-
@PashmeenaNoor 你应该在
name上使用全文搜索。postcode和country_name可能完全匹配。 -
@Nick 加油。谢谢(y)
标签: mysql sql database search full-text-search