Получение согласованного контекста из запроса MySQL LIKE - PullRequest
0 голосов
/ 05 ноября 2010

Вот как выглядит код SQL, который я использую до сих пор:

SELECT

    credentials.credential_id,
    clients.client_id,
    clients.client_name,
    services.service_id,
    services.service_name

FROM

    credentials

INNER JOIN

    clients ON clients.client_id = credentials.client_id

INNER JOIN

    services ON services.service_id = credentials.service_id

WHERE 

    services.service_name LIKE ?
    OR clients.client_name LIKE ?

Как вы видите, запись может быть возвращена, если service_name или client_name соответствуютзначение моего LIKE аргумента.Это хорошо работает.Вот мои вопросы:

1) Как по-прежнему обеспечивать поиск по ключевым словам, как я могу оптимизировать этот запрос, чтобы он был максимально масштабируемым?

2) Я бы хотел, чтобы MySQL возвращал контекст длячто было подобрано.Другими словами, я хотел бы показать пользователю, почему конкретная запись была возвращена тем, что соответствует запросу.Как вы можете сказать, это может быть либо имя службы, либо имя клиента, но когда я разверну этот запрос, это могут быть даже другие элементы в другой таблице.У кого-нибудь есть какие-либо ресурсы, чтобы указать мне на обеспечение соответствия контекста в ваших запросах MySQL?

Спасибо за любой совет.

1 Ответ

1 голос
/ 05 ноября 2010

Добавьте выражения LIKE в список полей.

SELECT ...
  services.service_name LIKE ? AS service_matched,
  clients.client_name LIKE ? AS client_matched
FROM
   ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...