首页 > 解决方案 > MYSQL 匹配 PHP 中的查询

问题描述

我想使用 MATCH AGAINST 查询而不是 like。我想在我的数据库中搜索未指定属性的某个值(例如 WHERE id = 2045)。我的网站上有一个像谷歌这样的搜索栏,我想写例如:2045 或约翰,这给了我所有关于它的信息。我不想只搜索几年的名字。我已经有了这个作为名称的特定属性:

$name = $_POST["name"];

$sql="SELECT id, name, city FROM student WHERE name LIKE '".$name."%'";

但我想要的是 MATCH AGAINST 查询。我不知道该怎么做......这就是我所拥有的:

$sql ="SELECT id, name, city FROM student WHERE MATCH(id, name, city) AGAINST ('".$name."%')";

在这里,我希望我的 $name 是我在搜索栏中随机写的。谢谢

标签: phpmysqlmysqli

解决方案


您有什么具体原因不使用 multipe LIKEwithOR吗?

$name = $_POST["name"];
$sql="SELECT id, name, city FROM student 
     WHERE id LIKE '".$name."%'" OR
           name LIKE '".$name."%'" OR
           city LIKE '".$name."%'";

另一种使用方法CONCAT()

$sql="SELECT id, name, city FROM student WHERE CONCAT(id,name,city) LIKE '".$name."%'"; 

推荐阅读