我有一个表,其中一个set列包含两种语言,另一个列包含一个订单。
是否可以使用MySQL查询迁移我的表,并在新表中为每个设置项目创建一条记录?
直接迁移记录适用于具有不带语言组合的设置列的记录。但是,如果一条记录包含一组语言,我只剩下一条记录,其中language列是空的。我最好希望在我的新表中插入2条新记录。
集合中的每种语言各一个。
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;我怀疑这是可能的,但我仍然想知道是否有人可能有解决这个问题的办法,因为我需要以某种方式迁移数据。
发布于 2016-07-15 23:32:54
创建一个具有一个字段的帮助器表,该字段列出set列中可以使用的所有语言。该表可以是您在迁移后删除的临时表。然后创建一条insert ... select ...语句,在该语句中使用MySQL的find_in_set()函数连接helper表上的源表:
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;https://stackoverflow.com/questions/38399277
复制相似问题