表名:联系人
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
答案 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)