php - 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 是我在搜索栏中随机写的。谢谢
解决方案
您有什么具体原因不使用 multipe LIKE
withOR
吗?
$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."%'";
推荐阅读
- python - 在 Python 中释放内存的最干净/最正确的方法(当 del/gc 拒绝时)
- python - 如何从 Python 中的 GLM 结果中获取标准错误?
- python-3.x - 如何检测和提取抓取的网址中的页码?
- database - Liquibase 和 Terraform 最佳实践
- java - 241. 添加括号的不同方法 - 一个我无法理解且非常有趣的错误
- cmake - 将 ESP32 项目从 C 盘移动到 H 盘。现在 Cmake 不会编译
- javascript - React-Native-Canvas 不绘制整个矩形
- java - Mockito 上的 NullPointerException 验证
- python - 这个二分搜索有什么问题?
- mysql - 根据列查找相似日期