2010-11-05 130 views
0

這裏拼搶匹配的上下文是什麼我使用迄今的SQL代碼如下所示:從MySQL LIKE查詢

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_name匹配返回到我的LIKE參數的值。這很好。這裏是我的問題:

1)雖然仍然提供關鍵字搜索,我怎麼能優化這個查詢儘可能可擴展?

2)我想讓MySQL返回匹配內容。換句話說,我希望能夠顯示用戶爲什麼查詢匹配返回的特定記錄。正如你所看到的,它可以是服務或客戶名稱,但是當我擴展這個查詢時,它甚至可能是另一個表中的其他項目。有沒有人有任何資源指向我關於在你的MySQL查詢中提供匹配的上下文?

感謝您的任何建議。

回答

1

將LIKE表達式添加到字段列表中。

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