更高效的名称查询


More Efficient Name Querying

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

因此,我正在寻找一种有效的方法来使用 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是搜索变量。这种类型的数据库查询对于一个单词或一个名字的名字足够有效。

问题是,如果我正在寻找"约翰·詹姆斯·史密斯"

,但我只知道他的名字是"约翰·史密斯"怎么办?我怎样才能检索到"约翰·詹姆斯·史密斯"的记录?所有答案将不胜感激。提前谢谢。

尝试交换空格以获得%

LIKE "%John%Smith%"

将回归"约翰·詹姆斯·史密斯"

要交换字符,您可以执行以下操作:

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

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