如何使用MySQL中的REGEXP_SUBSTR从以 * 分隔的文本中提取地址、城市、州和邮政编码?

iyr7buue  于 2022-11-21  发布在  Mysql
关注(0)|答案(1)|浏览(201)

REGEXP_SUBSTR('4550 Montgomery Avenue*Toronto*Ontario*M4A 2S3*', '(.*? ){2}(.*?),')
我得到了一个动态文本列表,其中包含地址、城市、省/自治区和邮政编码,用 * 分隔。需要使用REGEXP_SUBSTR输入准确的地址、城市、省/自治区和邮政编码。

7cwmlq89

7cwmlq891#

我会使用SUBSTRING_INDEX(),因为它比正则表达式更简单。

mysql> set @string = '4550 Montgomery Avenue*Toronto*Ontario*M4A 2S3*';

mysql> select 
 substring_index(@string, '*', 1) as address,
 substring_index(substring_index(@string, '*', 2), '*', -1) as city,
 substring_index(substring_index(@string, '*', 3), '*', -1) as state_province,
 substring_index(substring_index(@string, '*', 4), '*', -1) as postal_code;

+------------------------+---------+----------------+-------------+
| address                | city    | state_province | postal_code |
+------------------------+---------+----------------+-------------+
| 4550 Montgomery Avenue | Toronto | Ontario        | M4A 2S3     |
+------------------------+---------+----------------+-------------+

相关问题