mysql在类似操作中获得最大匹配

时间:2014-07-07 07:29:07

标签: mysql sql sql-server

我正在执行一个不提供所需输出的SQL查询:

表:

  -----------------------   
  |  col1                |
  ----------------------   
  |  data for hello user |
  |   data               |
   -----------------------

sql query Select * from table where col1 like'%data%' or col1 like '%for%' or col1 like '%hello%' ;

它向我展示了:

  -----------------------   
  |  col1                |
  ----------------------   
  |  data                |
  |  data for hello user |
   -----------------------

但由于data for hello user与sql类似的操作最大匹配,因此data for hello user首先出现data

请帮帮我

谢谢。

1 个答案:

答案 0 :(得分:1)

在互联网上搜索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      |
-------------------------------------