2013-07-26 109 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

您可以分割的关键字和搜索中的列(名字,姓氏和电子邮件)的各个关键字(或表达式)。