我有一张表,下面给出了值
payment_pattern application
0,0,117,9,5 XXXX0004DqjBQAS
0,30,0,29,16,0 XXX000004E79tQAC
30,30,23,29,22,1 XXX000006F2brQAC
0,0,0,0,29,28 XXXB000006Fs3oQAC
需要找到正则表达式,该表达式将返回所有值大于或等于30的行。
示例输出应为
0,0,117,9,5 XXXX0004DqjBQAS
0,30,0,29,16,0 XXXX0004E79tQAC
30,30,23,29,22,1 XXXX0006F2brQAC
答案 0 :(得分:0)
您可以在此处使用REGEXP
SELECT payment_pattern, application
FROM yourTable
WHERE payment_pattern REGEXP '[[:<:]]([3-9][0-9]|[1-9][0-9][0-9][0-9]*)[[:>:]]';
但是,最好不要在表中存储未标准化的CSV数据。如果每个数字都存储在单独的记录中,那么您的查询将很简单。
以下是上述正则表达式的演示:
以下是上述正则表达式的简要说明:
(
[3-9][0-9] match 30 to 99
[1-9][0-9][0-9][0-9]* match 100 to 999, or this plus any other digit
)