我正在尝试为网站实施最相关的搜索结果。
下面是我想要的样子:
如果有人输入“ Beauty”,则应首先搜索任何帐户用户名是否具有句柄“ @beauty”,并首先显示该名称,然后其余符合以下条件的帐户:
我当前正在使用的代码:
$searchset = mysqli_real_escape_string($conn, rtrim($_GET['search']));
$sql = "SELECT * FROM accounts WHERE username LIKE '%".$searchset."%' OR keywords LIKE '%".$searchset."%' OR bio LIKE '%".$searchset."%')";
我一直在阅读使用加权搜索或mysql MATCH()
的方法,但是我无法找出实现所需结果的最佳代码。
答案 0 :(得分:2)
一个简单的ORDER BY
应该可以完成这项工作:
$sql = "SELECT * FROM accounts WHERE username LIKE '%".$searchset."%' OR keywords LIKE '%".$searchset."%' OR bio LIKE '%".$searchset."%') ORDER BY '$searchset' != username";
您应该查看准备好的语句,我建议使用PDO代替mysqli。语法更加现代,并且有许多快捷方式和便捷方法。