匹配&反对在sql中查找字符串

时间:2017-01-31 17:39:42

标签: mysql sql

我有:

 ----------------------------
| ID          |  Workout     |
|_____________|______________|
| 1           |Chest workout |
| 2           |beach Workout |
| 3           |End workout   |
_____________________________

基本上我想在我的workout列中搜索字符串。

现在,如果您尝试SELECT * FROM db.table WHERE MATCH (workout) AGAINST('workout'); 或者SELECT * FROM db.table WHERE MATCH (workout) AGAINST('Chest');他们都工作正常。

但是如果你尝试SELECT * FROM db.table WHERE MATCH (workout) AGAINST('est');

仅在我的Chest列中有一行名为workout的情况下,即使(在胸部中为est)也不起作用。

所以如果你告诉如何在全文和单词内选择一个字符串并按字符排序第一个字符,如1.结束锻炼,2。海滩锻炼,3。在SQL中进行胸部锻炼,我将非常感激。

2 个答案:

答案 0 :(得分:3)

LIKE声明不会更多地执行您要查找的内容吗? 像这样:

SELECT *
FROM table WHERE workout LIKE '%est%'

上面的查询应该返回包含est。

的任何内容

答案 1 :(得分:0)

您的问题的答案是您似乎想要:

where Workout like '%est%'

'est'是子字符串,而不是。使用全文索引时,这是一个非常重要的区别。如果您需要搜索任何字符串,则like具有该功能。 MATCH基本上是在寻找单词。

不幸的是like在这种情况下不会使用索引。如果您有大量数据,您可能希望寻找更适合此问题的替代技术。