使用instr()的mysql子串

时间:2016-07-20 11:34:27

标签: mysql string

我想从字符串中提取邮政编码。 很自然地,我想到了这样的事情:

substring(PERSON_ADDRESS, instr(PERSON_ADDRESS,'[0-9][0-9][0-9][0-9][0-9]'), 5)

唉,似乎instr(str, '[0-9])在mysql中不是有效的东西(它返回0)

有关如何做到这一点的想法吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您创建了一个用户定义的函数 - 只要潜在的邮政编码被空格包围或者位于最后一个令牌位置就可以使用

+------+---------------------+
| id   | address             |
+------+---------------------+
|    1 | 13 mont 12c45 st    |
|    2 | 13 mont 12345 st    |
|    3 | 13 mont 12c45 45678 |
|    4 | 56789 mont 12c45 st |
+------+---------------------+

并且给出了这个

+------+---------------------+----------+
| id   | address             | zipcode  |
+------+---------------------+----------+
|    1 | 13 mont 12c45 st    | NotFound |
|    2 | 13 mont 12345 st    | 12345    |
|    3 | 13 mont 12c45 45678 | 45678    |
|    4 | 56789 mont 12c45 st | 56789    |
+------+---------------------+----------+

函数返回此

ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:**/myBeans.xml");