在SQL中将具有多个delimeter的地址拆分为多列

  • 本文关键字:地址 拆分 delimeter SQL mysql
  • 更新时间 :
  • 英文 :


1808 FOX CHASE DR, GOODLETTSVILLE, TN我正试图基于,逗号将其拆分为3列。

我使用了select substring_index(OwnerAddress,',',1),substring_index(OwnerAddress,',',-1) from housingdata;,它只会给我2个值,但我正在3个不同的列中寻找3个值。

我正在使用Mysql工作台。有人能指导如何在sql中使用多个delemter拆分字符串吗。

mysql> set @a = '1808  FOX CHASE DR, GOODLETTSVILLE, TN';
mysql> select trim(substring_index(@a, ',', 1)) as address,
trim(substring_index(substring_index(@a, ',', 2), ',', -1)) as city,
trim(substring_index(@a, ',', -1)) as state;
+--------------------+----------------+-------+
| address            | city           | state |
+--------------------+----------------+-------+
| 1808  FOX CHASE DR | GOODLETTSVILLE | TN    |
+--------------------+----------------+-------+

另一方面,如果希望这三个数据元素是独立的,则应该将它们存储在三个独立的列中。如果有人的地址包含逗号,这种查询肯定会遇到麻烦。

请参阅https://linguaholic.com/linguablog/commas-in-adresses/

4344 Lynn Ave.,Building F,Apt.4B,Merrill,WI 54452

最新更新