首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL从具有set字段的表中迁移数据

问MySQL从具有set字段的表中迁移数据
EN

Stack Overflow用户
提问于 2016-07-15 22:57:08
回答 1查看 32关注 0票数 1

我有一个表,其中一个set列包含两种语言,另一个列包含一个订单。

是否可以使用MySQL查询迁移我的表,并在新表中为每个设置项目创建一条记录?

直接迁移记录适用于具有不带语言组合的设置列的记录。但是,如果一条记录包含一组语言,我只剩下一条记录,其中language列是空的。我最好希望在我的新表中插入2条新记录。

集合中的每种语言各一个。

代码语言:javascript
复制
INSERT INTO newtable (
    newtable.oldtable_id, 
    newtable.language, 
    newtable.order
)
SELECT oldtable.id, oldtable.languages, oldtable.order
FROM oldtable
WHERE oldtable.order IS NOT NULL;

我怀疑这是可能的,但我仍然想知道是否有人可能有解决这个问题的办法,因为我需要以某种方式迁移数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 23:32:54

创建一个具有一个字段的帮助器表,该字段列出set列中可以使用的所有语言。该表可以是您在迁移后删除的临时表。然后创建一条insert ... select ...语句,在该语句中使用MySQL的find_in_set()函数连接helper表上的源表:

代码语言:javascript
复制
INSERT INTO newtable (
newtable.oldtable_id, 
newtable.language, 
newtable.order
)
SELECT oldtable.id, helpertable.language, oldtable.order
FROM oldtable inner join helpertable ON find_in_set(helpertable.language, oldtable.languages)>0;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38399277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档