gpt4 book ai didi

MySQL Regex,需要以任意顺序匹配短语

转载 作者:可可西里 更新时间:2023-11-01 08:38:06 25 4
gpt4 key购买 nike

我正在使用 MySQL 数据库来搜索类别列表。我的查询是:

select * from cat where name REGEXP('(region_Long Island)+(.)*(sport_Outdoor Track)');

传入值“region_Long Island”和“sport_Outdoor Track”的位置。我需要能够匹配这些类别,而不管它们的顺序如何。在表格中,可以有这些类别的各种组合两类。我需要匹配同时具有这两个类别的所有记录,无论它们以何种顺序列出。

我无法更改查询本身,只能修改传递给 REGEXP 函数的内容。

谢谢

最佳答案

如果您只能使用一个正则表达式并且不能更改 SQL 查询,那么要以任意顺序匹配 AB,您需要一个正则表达式匹配 ABBA:

'region_Long Island.*sport_Outdoor Track|sport_Outdoor Track.*region_Long Island'

回复你的评论:

What about cases where there are more than two, in any particular order?

如果您有模式 ABC 任何您需要以任何顺序找到所有这三个模式,您需要一个匹配 ABCACBCABCBABACBCA。如果您有 n 个模式,这很快就会看起来您需要 n! 个排列。

这就是为什么单个正则表达式对于这些情况不是好的解决方案。您将不得不使用另一种方法。

I am not able to change the query itself, only modify what is passed into the REGEXP function.

抱歉,这行不通。

关于MySQL Regex,需要以任意顺序匹配短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3670770/

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