gpt4 book ai didi

MySQL:REGEXP 模式未按预期工作

转载 作者:行者123 更新时间:2023-11-30 22:03:11 28 4
gpt4 key购买 nike

我有一个数据模式如下的数据集:

**ColumnName**
a/b
a/b:1
a/b:2
a/b.100
a/b.200
a/b:20

我需要使用 REGEXP 编写一个查询,以便它只从列中提取准确的数据,而不是相似的模式。但是,如果值中有一个点 (.),则应该在父模式中获取它。

以下是上述数据集的场景:

No.     PATTERN        RESULT
1 "a/b" a/b
a/b.100
a/b.200
2 "a/b:1" a/b:1
3 "a/b:2" a/b:2 (and not a/b:20)
4 "a/b:20" a/b:20

到目前为止,我使用的查询遵循模式 1、2 和 4,但它失败了模式 3。我得到了这两个结果,包括不应选择的结果,如上所示。

以下是我用来执行此操作的查询:

select * from table 
where (ColumnName REGEXP '<Pattern>$' or ColumnName REGEXP '<Pattern>[.^0-9]+');

我可以对这个查询做些什么来确保它遵循这种情况下的所有场景?

最佳答案

嗯。我认为打破 上的模式。 做你想做的事:

where substring_index(col, '.', 1) = v_pattern

如果模式可能包含 '.',您可能需要:

where (substring_index(col, '.', 1) = v_pattern or
col = v_pattern
)

关于MySQL:REGEXP 模式未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42729948/

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