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