MySQL的:
我有桌子:id, First_name (varchar), Last_name (varchar);
如何转换为表格:id, Name (varchar);
?
和
表:id, Address (varchar);
转换为:
表:id, Street_name(varchar), house_number(varchar), room_number(varchar);
换句话说,如何加入或拆分列VARCHAR类型?
答案 0 :(得分:0)
1-加入是不可能的。如果我们假设您的第一个表是“originalTable”,那么您需要将两个字段连接起来并将所有内容放在一个名为t1的新表中,例如:
Select into t1 id, concat(First_name, last_name) as Name
From originalTable
新表t1将自动创建两个字段(int和varchar)。
2-对于拆分,只要有三个非空子字段(Street_name,House_number和Room_number),您可以使用以下SQL代码:
SELECT
substring(Address, 1, locate(' ', Address)-1) as Street_name,
substring(
substring(Address FROM locate(' ', Address)+1),
1,
locate(' ', substring(Address FROM locate(' ', Address)+1))-1
) as House_number,
substring(
substring(
Address FROM locate(' ', Address)+1
)
FROM locate(
' ',
substring(Address FROM locate(' ', Address)+1)
)+1
)
as Room_number
From t1
有关此处使用的两个字符串函数(substring和locate)的详细信息,请参阅有关字符串函数的MySQL文档: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html