我在数据库中有一个产品表。数据库引擎 innodb 。
现在,product表有一个product_name字段。在这里,我想得到产品名称与给定字符串匹配的产品表的所有记录。
例如,Laptop是product_name,我的字符串是"我想要笔记本电脑"。现在,我想找到包含在字符串中的product_name。
我写过如下查询:
SELECT * FROM product WHERE MATCH (product_name) AGAINST ('I want laptop');
但是由于我的数据库引擎innodb,这个查询会抛出像(使用的表类型不支持FULLTEXT索引)这样的错误。那么我应该写哪个查询而不是它呢?
答案 0 :(得分:1)
要解决您的问题,您需要
答案 1 :(得分:1)
您可以将like
与双外卡一起使用,但查询速度非常慢,因为双外卡查询无法使用索引,因此数据库将被强制执行表扫描:
SELECT * FROM product WHERE 'I want laptop' LIKE CONCAT('%',product_name,'%');