考虑数据库中的表类别,列类型为。数据类型是varchar,带有值
typeis
------
2.5.1
12
1.1.1
11
letters12
.........
我想编写一个查询,它只返回带有“.”和0-9之间的数字的记录
例如
2.5.1
1.1.1
到目前为止,我已经
select typeis from category where typeis
not in
(select typeis from category where typeis REGEXP '[^0-9 \.]+')
and typeis in
(select typeis from category where typeis REGEXP '^[0-9]+[\.]')
这似乎有效。问题是它只占用1500条记录的3secs。我想用一个REGEXP来简化和加快它,而不是使用嵌套的select
最佳答案
尝试:^[0-9]+\.[0-9]+(\.[0-9]+)*
这应该匹配以数字开头的内容,包括中间某处的点,以数字结尾的内容,以及任意多的这些模式。