【发布时间】:2013-07-26 13:59:08
【问题描述】:
我有一个搜索系统,可以帮助您过滤人员列表 我的桌子(人)
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
name + [空格] + surname 输入时如何获取系统查找结果?
【问题讨论】:
-
有哪些索引?如果你有一个
SPATIAL索引,你也可以试试MATCH()...AGAINST()子句。