我遇到正则表达式问题。我在查询中使用正则表达式,如下所示。
SELECT *
FROM ad
WHERE platform_specific_selection
REGEXP '[\|]{0,1}19[\|]{0,1}'
它给我一些错误的结果如下所示。
19|21|
0|19|20|22|
19|
0|919|
我希望使用正则表达式匹配完全19
,我不希望结果中有0|919|
这个值。任何人都可以给我相同的正确的正则表达式吗?
答案 0 :(得分:3)
这应该有效:
select * from t where a REGEXP '(^|[|])19([|]|$)';
(我们的想法是在左侧允许|
或字符串开头,在右侧允许|
或字符串结尾。)
答案 1 :(得分:0)
为什么正则表达式,LIKE就足够了
SELECT *
FROM ad
WHERE platform_specific_selection
LIKE '%|19|%'