Полнотекстовый поиск по столбцу с данными из 2 таблиц - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть две таблицы в БД MySql, названные «Пациенты» и «Страна». Таблица пациента содержит

'name','dob',postcode','address', 'country_id' и т. Д.
Таблица страны имеет
'id' and 'country_name' столбцы.

Теперь я хочу, чтобы пользователь вводил что-либо из имени, почтового индекса или страны пациента и получал требуемый результат / данные пациента.

Чтобы достичь этого, я могу придумать способ выполнения запроса с помощью объединений. Другой способ, который я хотел спросить, заключается в том, будет ли хорошим способом сохранить переменные поиска, т. Е. Имя, почтовый индекс и страну, в столбце с полнотекстовым типом, таким образом, как «name_postcode_country», и когда пользователь вводит переменную поиска. Я выполняю полнотекстовый поиск по вновь созданному столбцу.

Или есть другой лучший подход, который я должен рассмотреть.

1 Ответ

0 голосов
/ 05 сентября 2018

Не стоит хранить всю эту информацию в одном столбце, вы можете использовать такую ​​комбинацию с SELECT, которая объединяет упомянутые таблицы:

select p.name, p.dob, p.postcode, p.address,
       c.country_name
  from Patients p
  inner join Country c 
     on ( p.country_id = c.id )
  where ( upper(name) like upper('%my_name_string%') ) 
     or ( upper(postcode) like upper('%my_postcode_string%') )
     or ( upper(country) like upper('%my_country_string%') );

вам нужно использовать upper или lower псевдоколонки против чувствительности к регистру проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...