关于mysql数据库将一列分成两列的方法

name
天津=李梦
上海=张小
北京=李华
我现在想要的结果是将一列分成两列
city name
天津 李梦
上海 张小
北京 李华
怎样能做到批量实现,上千万条记录
多谢了,很着急

可用substring函数。

如某个表中只有一个字段:

ID  

123abc

456def

890ghi


现在要将前三位为一个字段,起名为id1,后3位是另一个字段,起名叫id2。可用如下语句:

select substring(id,1,3) id1,substring(id,4,3) id2 from è¡¨å

结果如下:

id1   id2

123  abd

456  def

890  ghi


substring函数说明,一共需要3个参数,其中,第一个参数为要截取的字符串,第二个参数为截取的起始位置,第三个参数为截取的长度。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15
SELECT SUBSTRING_INDEX(name, '=', 1) AS city, SUBSTRING_INDEX(name, '=', -1) AS name FROM TB_USER;
上面那个是用于查询的,如果是想修改数据库,则用下面的语句:
ALTER TABLE TB_USER
ADD COLUMN city VARCHAR(16) NULL;

UPDATE TB_USER SET city = SUBSTRING_INDEX(name, '=', 1),
name = SUBSTRING_INDEX(name, '=', -1);本回答被提问者采纳
第2个回答  2011-06-26
1、新建city字段
2、从原name字段读出数据,使用字符处理函数,可以把"="当作定界符分成一个数组。
3、用新得到的数组分别更新两个字段。
相似回答