我有一张这样的桌子
NO1 | NO2
3173 02241016 0008 | 3673 0619 0590 0001
3173 0219 0312 1023 | 3671 1101 0380 0007
3173022701090232 | 3173 0218 0583 0006
3173 022601097060 | 3173 0214 0278 0010
3173021201121012 | 3173 0259 0694 1002
anywords any | anywords any2
anyword2any2 | anywordsany3
anywords/ any-@ | anywords any2如果值包含空格或任何类型的分隔值,如(\r,\n,\t),我希望搜索NO1列,因此我使用以下代码
select * from table1 where NO1 REGEXP '[[:blank:]]' 结果是
NO1 | NO2
3173 02241016 0008 | 3673 0619 0590 0001
3173 0219 0312 1023 | 3671 1101 0380 0007
3173 022601097060 | 3173 0214 0278 0010
anywords any | anywords any2
anywords/ any-@ | anywords any2现在,我想排除除number之外的至少一种单词,但我不知道如何在正则表达式匹配查询中组合include和exclude
NO1 | NO2
3173 02241016 0008 | 3673 0619 0590 0001
3173 0219 0312 1023 | 3671 1101 0380 0007
3173 022601097060 | 3173 0214 0278 0010我怎么能这么做呢?
发布于 2020-07-04 09:54:11
您似乎希望由数字组成的行至少有一个空格。一种简单的方法是对不包含这些字符的任何行进行查找:
where NO1 NOT regexp '[^[:blank:]0-9]' AND NO1 REGEXP '[[:blank:]]'或者:
where NO1 regexp '^[[:blank:]0-9]+[[:blank:]][[:blank:]0-9]*$' Here是一个db<>fiddle。
发布于 2020-07-04 11:15:52
where NO1 regexp '^[0-9]+[[:blank:]][[:blank:]0-9]*$'可能比戈登的版本更快。
如果您必须避免尾随空格,则可能需要这样做:
where NO1 regexp '^[0-9]+[[:blank:]][[:blank:]0-9]*[0-9]$'https://stackoverflow.com/questions/62724492
复制相似问题