mysql在like操作中获得最大匹配

mysql在like操作中获得最大匹配,mysql,sql,sql-server,Mysql,Sql,Sql Server,我正在执行一个sql查询,该查询没有提供所需的输出: 表: ----------------------- | col1 | ---------------------- | data for hello user | | data | ----------------------- sql查询从表中选择*,其中类似于“%data%”的col1或类似于“%for%”的col1或类似于“%he

我正在执行一个sql查询,该查询没有提供所需的输出:

表:

  -----------------------   
  |  col1                |
  ----------------------   
  |  data for hello user |
  |   data               |
   -----------------------
sql查询从表中选择*,其中类似于“%data%”的col1或类似于“%for%”的col1或类似于“%hello%”的col1

它向我展示了:

  -----------------------   
  |  col1                |
  ----------------------   
  |  data                |
  |  data for hello user |
   -----------------------
但由于hello用户的数据与类似sql的操作有最大匹配,所以hello用户的数据排在第一位,数据排在第二位

请帮帮我


谢谢。

在互联网上搜索mysql的全文搜索。 您可以获得您正在搜索的内容

范例

CREATE TABLE tableName ( 
      tablekey INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
      col1 VARCHAR(200), 
      FULLTEXT (col1) 
);


SELECT col1, MATCH(col1) AGAINST('data for help') AS accuracy
FROM table 
WHERE MATCH(col1) AGAINST('data for help') 
ORDER BY accuracy DESC
将返回类似于

-------------------------------------
|  col1                |  accuracy  |
-------------------------------------
|  data for hello user |    70      |
|  data                |    10      |
-------------------------------------

您应该对此使用全文搜索。您的表中是否有任何键列?MySQL不是SQL Server+1,用于显示正确的搜索方式。错误1214-使用的表类型不支持全文indexes@user3808438只有我使用的MYISAM或InnoDB表ENGINE=MYISAM默认值才支持Fulltest搜索索引字符集=1;创建的表没有问题,但在执行查询时:从表中选择col1,根据“帮助数据”匹配col1作为准确性,其中根据准确性描述的“帮助数据”顺序匹配col1输出:MySQL返回一个空结果集,即零行。查询时间为0.0007sec@user3808438尝试根据“帮助数据”删除where-where-MATCHcol1。现在您应该可以看到精度返回的数据类型。。。在这之后,您可以针对精度>0.2的“帮助数据”设置类似WHERE MATCHcol1的内容