我想要一种简单的方法来搜索数据库中的2个字段。
以下是方案:表单包含名为name
的文本框,可以向搜索脚本提交值。
搜索脚本会根据数据库中的名字和姓氏字段检查name
。
我遇到的问题是人们是否在数据库中的名字或姓氏字段下输入中间名。
我想搜索的数据示例
fname lname
--------------------
stephen jones
john james doe
john james doe
我以为可以这样搜索:
SELECT
_leads.Firstname,
_leads.Lastname
FROM
_leads
WHERE
_leads.Firstname LIKE '%stephen jones%' OR
_leads.Lastname LIKE '%stephen jones%'
我希望它会起作用。
我的另一个尝试是爆炸字符串,然后将其与数据库进行比较。
我是否对此过分了解?是否有任何简单的代码可以帮助我?
答案 0 :(得分:1)
您可以这样搜索:
WHERE CONCAT(first, ' ', last) LIKE '%John%Doe%'
即使有中间名,也会发现它。)
答案 1 :(得分:1)
您应该在这两列上设置FULLTEXT索引并使用它来检索行。在MySQL中,您将编写:
SELECT * FROM _leads WHERE MATCH(Firstname, Lastname) AGAINST ('stephen jones')
答案 2 :(得分:0)
SELECT fields FROM table WHERE CONCAT(field1, ' ', field2) LIKE '%string%'