gpt4 book ai didi

mysql - 在不使用正则表达式或 rlike 的情况下搜索确切的词组

转载 作者:行者123 更新时间:2023-12-01 00:19:46 27 4
gpt4 key购买 nike

我的 table 是这样的:

|name           |
-----------------
|Joseph Jackson |
|Aiden Chase |
|Luke Benjamin |
|Joseph |
|Joseph2 |

如果我搜索单词 Joseph (SELECT * from myTable where name="Joseph" ) 我只会得到最后的结果:

|name           |
-----------------
|Joseph |

如果我搜索 Jackson 这个词,我不会得到任何结果。

那是我不想要的。


我想要的是获取确切搜索词中存在的记录,例如:

如果搜索的词是约瑟夫,我会得到:

|name           |
-----------------
|Joseph |
|Joseph Jackson |

*注意 Joseph2 不在结果集中。

如果搜索的词是 Jackson,我会得到:

|name           |
-----------------
|Joseph Jackson |

*但是我不能使用like '%Jose%'(like 的使用)因为我会得到 Joseph2 并且我想要确切的词(Jose)。

*如果搜索的词是 Jose,例如我不应该得到任何结果,因为 Jose 不在数据中(我也不应该得到包含 Joseph 词的记录)。


我发现的唯一方法是使用正则表达式,例如:

SELECT * from myTable where REGEXP [[:<:]]Joseph[[:>:]]     

|name |
-----------------
|Joseph |
|Joseph Jackson |


SELECT * from myTable where REGEXP [[:<:]]Jackson[[:>:]]

|name |
-----------------
|Joseph Jackson |

我想要这个结果,但不使用正则表达式且不使用 rlike,有什么办法吗?如何?谢谢。

最佳答案

这为全文搜索尖叫

ALTER TABLE T ADD FULLTEXT INDEX (name);

SELECT * FROM T WHERE MATCH (name) AGAINST ('+Joseph' IN BOOLEAN MODE);

FIDDLE

关于mysql - 在不使用正则表达式或 rlike 的情况下搜索确切的词组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34598383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com