从MySQL LIKE查询中抓取匹配的上下文

时间:2010-11-05 16:45:21

标签: php mysql datacontext

这是我到目前为止使用的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_nameclient_nameLIKE参数的值匹配,则可能会返回记录。这很好用。以下是我的问题:

1)虽然仍提供关键字搜索,但如何优化此查询以尽可能扩展?

2)我希望MySQL返回匹配的上下文。换句话说,我希望能够向用户显示查询匹配的返回特定记录的原因。正如您所知,它可以是服务名称或客户端名称,但是当我展开此查询时,它甚至可能是另一个表中的其他项目。有没有人有资源指出我在MySQL查询中提供匹配的上下文?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

将LIKE表达式添加到字段列表中。

SELECT ...
  services.service_name LIKE ? AS service_matched,
  clients.client_name LIKE ? AS client_matched
FROM
   ...