【问题标题】:Search system not searching both name and surname搜索系统不搜索姓名和姓氏
【发布时间】: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() 子句。

标签: php mysql pdo


【解决方案1】:

您可以拆分关键字并在列(姓名、姓氏和电子邮件)中搜索每个单独的关键字(或表达式)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多