提取字段的第一个数字部分
我有一个用于地址的数据库(Postgres 7.4)字段
示例数据
address | zip
-----------------------+-------------+
123 main street | 12345
-----------------------+-------------+
3 where road | 12345
-----------------------+-------------+
South 3 where road | 12345
我得到了所有查询
SELECT *
FROM tbl
WHERE zip = 12345
AND address ILIKE '3%'
,但我不想要 123 主要街道
SELECT *
FROM tbl
WHERE zip = 12345
AND address ILIKE '123%'
我得到了我想要的结果
我的问题是如何匹配地址的数字部分?
I have a database (Postgres 7.4) field for address
Example Data
address | zip
-----------------------+-------------+
123 main street | 12345
-----------------------+-------------+
3 where road | 12345
-----------------------+-------------+
South 3 where road | 12345
The queries
SELECT *
FROM tbl
WHERE zip = 12345
AND address ILIKE '3%'
I get all but I don't want 123 main street
SELECT *
FROM tbl
WHERE zip = 12345
AND address ILIKE '123%'
I get the results I want
My question is how do I just match the numeric part of the address?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从字符串开头返回 1 位或多位数字。
如果您想要字符串中的第一个数字序列而不是开头的序列,请省略锚点
^
。示例:了解
substring()
和 正则表达式手册。在较新的版本(8.0+,
standard_conforming_strings = on
)中,使用 转义字符串语法如下所示:或者只是:
Returns 1 or more digits from the start of the string.
Leave out the anchor
^
if you want the first sequence of digits in the string instead of the sequence at the start. Example:Read about
substring()
and regular expressions in the manual.In more recent versions (8.0+, with
standard_conforming_strings = on
), use escape string syntax like this:Or just: