2013-07-26 107 views
-2

我有一個搜索系統,它可以幫助您篩選的人列出 我的表(個人)搜索系統無法搜索這兩個名字和姓氏

id | name | surname | email 

有,你可以輸入名字,姓氏或電子郵件這樣一個文本框該列表會在您鍵入時進行過濾。

它發現記錄,如果我只寫名字或姓氏只。但是如果我輸入名字和姓氏,它什麼都不顯示。

我曾嘗試MySQL的CONCAT功能。但它沒有奏效。

我的查詢:

SELECT * 
FROM People 
WHERE name LIKE :p1 
    OR surname LIKE :p2 
    OR email LIKE :p3 

我已經試過這

SELECT * 
FROM People 
WHERE name LIKE :p1 
    OR surname LIKE :p2 
    OR email LIKE :p3 
    OR CONCAT(name, char(32), surname) LIKE :p4 

SELECT id, 
    name, 
    surname, 
    CONCAT(name, char(32), surname) AS fullname 
FROM People 
WHERE name LIKE :p1 
    OR surname LIKE :p2 
    OR email LIKE :p3 
    OR fullname LIKE :p4 

我如何才能獲得系統,可以找到結果時名稱+ [空格]姓氏被輸入了?

+0

有沒有什麼樣的指標?如果你有一個'SPATIAL'索引,你可以嘗試'MATCH()... AGAINST()'子句。 – hjpotter92

回答

0

您可以分割的關鍵字和搜索中的列(名字,姓氏和電子郵件)的各個關鍵字(或表達式)。