更高效的名称查询

时间:2013-09-16 08:06:13

标签: php mysql database

我的问题很简单,但我认为解决方案并不那么简单。

所以,我正在寻找一种有效的方法来使用PHP和mySQL使用学生的名字来查询students表。目前,我有这个代码:

 SELECT * from students 
 WHERE student_number='$searchKey' //can also search using student number
 OR student_fname LIKE '%$searchKey%'
 OR student_lname LIKE '%$searchKey%'
 OR concat(student_lname,' ',student_fname) LIKE '%$searchkey%'

$searchKey是搜索变量。这种类型的数据库查询对于单字或单名的名字非常有效。

问题是,如果我正在寻找“John James Smith”,但我只知道他的名字是“John Smith”?我怎么还能找回那个“John James Smith”的唱片?所有的答案将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试交换%

的空格
LIKE "%John%Smith%"

将返回“John James Smith”

要交换角色,你可以这样做:

$searchKey = str_replace(' ', '%', $searchKey);

答案 1 :(得分:0)

尝试WHERE(student_number + student_fname + student_lname),例如'%$ searchKey%'