在多列中搜索多个术语

时间:2012-12-16 19:09:08

标签: php sql search

我有一个搜索用户名称的搜索表单。问题是,在我的数据库中,我有一个单独的名字和姓氏。这就是我的查询当前的样子(这是在PHP脚本中,$ term是搜索输入):

SELECT * FROM profiles WHERE firstname LIKE '%$term%' OR lastname LIKE '%$term%'

当用户只输入名字或姓氏时,这样可以正常工作,但对于诸如“John Smith”之类的全名,这将不起作用。

如何修改查询和/或php脚本以有效解决此问题?例如,我应该首先拆分字符串,还是等等?

1 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作
WHERE firstname||' '||lastname LIKE '%$term%'

比较名字加上空格加上%$term%的姓氏。

但是,您不应该使用变量构建SQL查询。您应该通过PDO使用参数化查询。有关示例,请参阅http://bobby-tables.com/php.html