在数据库列中查找字符串单词

时间:2016-03-19 05:48:33

标签: php mysql

我在数据库中有一个产品表。数据库引擎 innodb

现在,product表有一个product_name字段。在这里,我想得到产品名称与给定字符串匹配的产品表的所有记录。

例如,Laptop是product_name,我的字符串是"我想要笔记本电脑"。现在,我想找到包含在字符串中的product_name。

我写过如下查询:

SELECT * FROM product WHERE MATCH (product_name) AGAINST ('I want laptop');

但是由于我的数据库引擎innodb,这个查询会抛出像(使用的表类型不支持FULLTEXT索引)这样的错误。那么我应该写哪个查询而不是它呢?

2 个答案:

答案 0 :(得分:1)

要解决您的问题,您需要

  • 将您的表格引擎类型更改为支持全文搜索的MyISAM(如果您使用的是5.6之前的MySQL版本)。
  • 或使用InnoDB Full-Text Search(MySQL 5.6及更高版本)。

答案 1 :(得分:1)

您可以将like与双外卡一起使用,但查询速度非常慢,因为双外卡查询无法使用索引,因此数据库将被强制执行表扫描:

SELECT * FROM product WHERE 'I want laptop' LIKE CONCAT('%',product_name,'%');