php - 如果关键字出现在字符串的不同位置,如何在数据库字段中搜索关键字?

标签 php mysql

我在数据库中有一个字段,我想在其中进行关键字搜索。但我认为我在编写 Mysql 查询时遇到了问题。

"select * from products as P where P.product_name REGEXP '[[:<:]]".$search."[[:>:]]'";

我已经使用 REGEXP 来获取搜索中的确切关键字。代码运行正常。但我遇到的问题是

假设我想搜索“洗衣机”。但我输入了“洗衣机”。

那么 $search 的值将是

$search="washingmachine";

表的product_name字段中的关键字如下所示

product_id | product_name
------------------------------------------------------------------------
1          | Haier 6.2 Kg Ruby Red Semi Automatic Top Load Washing Machine  XPB 62-0613RU
2          | Haier (6.2 Kg,Aqua Blue) Semi-automatic Top-loading Washing Machine XPB62-0613AQ
3          | Haier (6.5 Kg, ) Semi-automatic Top-loading Washing Machine  XPB 65-114D

我也使用了 LIKE 子句,但遇到了同样的问题。

我如何搜索这个。如果有解决办法请分享。

最佳答案

您可以使用MATCH()...AGAINST(),如下所述:"Natural Language Full-Text Searches"

关于php - 如果关键字出现在字符串的不同位置,如何在数据库字段中搜索关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43041047/

相关文章:

php - 在 PHP 中处理带有重音符号的 JSON 对象

mysql - 将两列合二为一,同时保留其他列。然后与另一个表合并

MySQL:无法启动服务,Windows 10

php - 模组安全 : Access denied with code 403

php - 使用sql检查特定时间的餐厅表可用性

mysql - ‘where 子句中的未知列 '$userId'

python - 获取下一张和上一张图像的最佳方式 Django

php - 搜索数据库 PHP/MYSQL 问题

php - 从 FROM_UNIXTIME 返回 0 计数

php - 如何保护我的 php 脚本不被其他域调用?