这是我到目前为止使用的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查询中提供匹配的上下文?
感谢您的任何建议。
答案 0 :(得分:1)
将LIKE表达式添加到字段列表中。
SELECT ...
services.service_name LIKE ? AS service_matched,
clients.client_name LIKE ? AS client_matched
FROM
...