您好我有一个简单的搜索查询,我面临的是当有人写他想要搜索的用户的唯一名字时,我的查询找到它,当有人只在输入中写下姓氏并发布时,它也显示了这一点,但是当用户在输入中一起写出名字和姓氏时,即使他/她存在,也找不到用户. $q查询的最后一部分,我写了第一个名字和姓氏,如部分不起作用我知道我的逻辑是坏的,但我怎么能解决这个问题
try {
$q = "SELECT * FROM `members` WHERE `first_name` LIKE :search_string OR `last_name` LIKE :search_string OR `first_name` AND `last_name` LIKE :search_string";
$q_do = $db->prepare($q);
$q_do->execute( array("search_string"=>'%'.$query.'%') );
$number = $db->query("SELECT FOUND_ROWS()")->fetchColumn();
} catch(PDOException $e) {
$log->logError($e." - ".basename(__FILE__));
}
谢谢
解决方法:
尝试使用concat:
$q = "SELECT * FROM `members` WHERE `first_name` LIKE :search_string
OR `last_name` LIKE :search_string
OR concat(`first_name` , ' ', `last_name`) LIKE :search_string";