php - 如何使用 SQL 进行松散搜索

标签 php mysql sql mysqli

所以我尝试使用 PHP 和 MySQL 实现搜索功能,我遇到了 LIKE SQL 运算符,它对于基本字符串匹配效果很好,但它寻找的是精确匹配。我想知道如何使用 MySQL 进行松散搜索。

现在,如果您使用我的搜索功能搜索“蓝色夹克”,那么它不会与“非常漂亮的蓝色元素|夹克”匹配。我希望能够匹配它,有什么建议吗?

我当前的 MySQLi 搜索代码如下所示:

$stmt = $conn->prepare("SELECT * FROM `items` where title LIKE CONCAT('%', ?, '%')");

最佳答案

在 @Gordon Linoff 和 @Sammitch 建议全文搜索后,我进入 phpmyadmin 并将 title 列标记为全文,然后将 SQL 查询修改为:

$stmt = $conn->prepare("SELECT * FROM `items` WHERE MATCH(title) AGAINST ( ? IN NATURAL LANGUAGE MODE)");

了解更多信息:dev.mysql.com/doc/refman/5.7/en/fulltext-search.html

关于php - 如何使用 SQL 进行松散搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48120736/

相关文章:

php - 如何将数据插入2个不同的表(php mysql)

php - 获取查询结果时格式化日期

php - 如何包含或引导 paypal-core-sdk php

php - mysql_real_escape_string ALONE可以防止各种sql注入(inject)吗?

mysql - 内连接两个表并仅显示最新记录(mySQL)

mysql - SQL while 循环没有匹配任何条目

php - 使用 PHP-FFMpeg (Laravel 5) 为视频制作有意义的缩略图

php - (12)无法分配内存: couldn't create child process:/opt/suphp/sbin/suphp

mySQL 查询优化 LEFT JOIN

mysql - 查询表名附加日期