我在数据库中有一个字段,我想在其中进行关键字搜索。但我认为我在编写 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/