Mysql选择查询以匹配zipcodes

时间:2014-11-16 11:45:20

标签: mysql

表名:联系人

id | postal_code
1  | 41575-8907
2  | 41575
3  | 65789
4  | 396001
5  | 65789-0013

我想要的是检查postal_code,如果它的模式为xxxxx-xxxx,那么只需前5位并放弃-XXXX

可能会检查这样的正则表达式:“[0-9]{5}-[0-9{4}]”。

我想要一个显示以下输出的选择mysql查询。

id | postal_code
1  | 41575
2  | 41575
3  | 65789
4  | 396001
5  | 65789

1 个答案:

答案 0 :(得分:2)

像这样使用SUBSTRING_INDEX()

SELECT id, SUBSTRING_INDEX(code_postal,'-',1); 
FROM contacts

<强>样本

mysql> select * from contacts;
+----+-------------+
| id | code_postal |
+----+-------------+
|  1 | 12345-456   |
|  2 | 12346       |
|  3 | 12347       |
|  4 | 12348-7865  |
|  5 | 10348-77765 |
+----+-------------+
5 rows in set (0.00 sec)

mysql> select id, substring_index(code_postal,'-',1) from contacts;
+----+------------------------------------+
| id | substring_index(code_postal,'-',1) |
+----+------------------------------------+
|  1 | 12345                              |
|  2 | 12346                              |
|  3 | 12347                              |
|  4 | 12348                              |
|  5 | 10348                              |
+----+------------------------------------+
5 rows in set (0.00 sec)