您好我有一个简单的搜索查询,我面临的是当有人写他想要搜索的用户的唯一名字时,我的查询找到它,当有人只在输入中写下姓氏并发布时,它也显示了这一点,但是当用户在输入中一起写出名字和姓氏时,即使他/她存在,也找不到用户. $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";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。