mysql/sql使用一个关键字字符串搜索名字和姓氏


mysql/sql search for first name and last name with one keyword string

我有以下字段:名字和姓氏关键字是$keyword如果有人搜索:John Doe我希望它能够返回结果。现在,如果是john或doe,则返回结果。这是代码:

$q1 = strtolower($_GET["q"]);
$q=str_replace(" ","%",$q1);
$sql = "select DISTINCT users.*, user_id FROM users WHERE $email_filter 
firstname LIKE '%$q%' OR lastname LIKE '%$q%' ORDER BY lastname";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) { echo $results }

任何帮助都将不胜感激,谢谢!

您想要名字和姓氏与参数匹配的情况,而不是名字或姓氏,因此它应该是名字LIKE'%$q%'和姓氏LIKE'%$sq%'

请记住,由于您使用的是LIKE,如果名称是John Doe、Johnnie Doe、John Does、Johannie Does,则所有这些都将与名字包含John、姓氏包含Doe的任何其他记录一起返回。

如果用户提供了类似"John Doe"的响应,这应该会修剪任何多余的空白,将提供的名称分解为值,并根据您提供的代码进行查询:

$q1 = trim(strtolower($_GET["q"]));
$name = explode(" ",$q1);
$fname = $name[0];
$lname = $name[1];
$sql = "select DISTINCT users.*, user_id FROM users WHERE $email_filter 
firstname LIKE '%$fname%' OR lastname LIKE '%$lname%' ORDER BY lastname";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) { echo $results; }

希望它能帮助